mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 15:11:48 -04:00
Merge android11-5.4.61+ (4271ad6) into msm-5.4
* refs/heads/tmp-4271ad6: BACKPORT: mac80211_hwsim: add frame transmission support over virtio This allows communication with external entities. ANDROID: ABI: add symbols of sprd_ion.ko and snd-soc-sprd-codec-sc2730.ko to unisoc ANDROID: ABI: Update allowed list for QCOM ANDROID: GKI: Update abi_gki_aarch64_exynos ANDROID: GKI: enable CONFIG_SUN4I_TIMER ANDROID: uid_sys_stats: report uid_cputime stats in microseconds ANDROID: ABI: Update allowed list for QCOM UPSTREAM: Documentation: arm64: document support for the AMU extension UPSTREAM: arm64/kvm: disable access to AMU registers from kvm guests UPSTREAM: arm64: trap to EL1 accesses to AMU counters from EL0 BACKPORT: arm64: add support for the AMU extension v1 UPSTREAM: block: fix get_max_io_size() Change-Id: I5d4e624fc9e2c13e89c3c1c3a9b8e6ee3c7fabe8 Signed-off-by: Blagovest Kolenichev <bkolenichev@codeaurora.org>
This commit is contained in:
commit
dcc60d5081
24 changed files with 1052 additions and 266 deletions
112
Documentation/arm64/amu.rst
Normal file
112
Documentation/arm64/amu.rst
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
=======================================================
|
||||
Activity Monitors Unit (AMU) extension in AArch64 Linux
|
||||
=======================================================
|
||||
|
||||
Author: Ionela Voinescu <ionela.voinescu@arm.com>
|
||||
|
||||
Date: 2019-09-10
|
||||
|
||||
This document briefly describes the provision of Activity Monitors Unit
|
||||
support in AArch64 Linux.
|
||||
|
||||
|
||||
Architecture overview
|
||||
---------------------
|
||||
|
||||
The activity monitors extension is an optional extension introduced by the
|
||||
ARMv8.4 CPU architecture.
|
||||
|
||||
The activity monitors unit, implemented in each CPU, provides performance
|
||||
counters intended for system management use. The AMU extension provides a
|
||||
system register interface to the counter registers and also supports an
|
||||
optional external memory-mapped interface.
|
||||
|
||||
Version 1 of the Activity Monitors architecture implements a counter group
|
||||
of four fixed and architecturally defined 64-bit event counters.
|
||||
- CPU cycle counter: increments at the frequency of the CPU.
|
||||
- Constant counter: increments at the fixed frequency of the system
|
||||
clock.
|
||||
- Instructions retired: increments with every architecturally executed
|
||||
instruction.
|
||||
- Memory stall cycles: counts instruction dispatch stall cycles caused by
|
||||
misses in the last level cache within the clock domain.
|
||||
|
||||
When in WFI or WFE these counters do not increment.
|
||||
|
||||
The Activity Monitors architecture provides space for up to 16 architected
|
||||
event counters. Future versions of the architecture may use this space to
|
||||
implement additional architected event counters.
|
||||
|
||||
Additionally, version 1 implements a counter group of up to 16 auxiliary
|
||||
64-bit event counters.
|
||||
|
||||
On cold reset all counters reset to 0.
|
||||
|
||||
|
||||
Basic support
|
||||
-------------
|
||||
|
||||
The kernel can safely run a mix of CPUs with and without support for the
|
||||
activity monitors extension. Therefore, when CONFIG_ARM64_AMU_EXTN is
|
||||
selected we unconditionally enable the capability to allow any late CPU
|
||||
(secondary or hotplugged) to detect and use the feature.
|
||||
|
||||
When the feature is detected on a CPU, we flag the availability of the
|
||||
feature but this does not guarantee the correct functionality of the
|
||||
counters, only the presence of the extension.
|
||||
|
||||
Firmware (code running at higher exception levels, e.g. arm-tf) support is
|
||||
needed to:
|
||||
- Enable access for lower exception levels (EL2 and EL1) to the AMU
|
||||
registers.
|
||||
- Enable the counters. If not enabled these will read as 0.
|
||||
- Save/restore the counters before/after the CPU is being put/brought up
|
||||
from the 'off' power state.
|
||||
|
||||
When using kernels that have this feature enabled but boot with broken
|
||||
firmware the user may experience panics or lockups when accessing the
|
||||
counter registers. Even if these symptoms are not observed, the values
|
||||
returned by the register reads might not correctly reflect reality. Most
|
||||
commonly, the counters will read as 0, indicating that they are not
|
||||
enabled.
|
||||
|
||||
If proper support is not provided in firmware it's best to disable
|
||||
CONFIG_ARM64_AMU_EXTN. To be noted that for security reasons, this does not
|
||||
bypass the setting of AMUSERENR_EL0 to trap accesses from EL0 (userspace) to
|
||||
EL1 (kernel). Therefore, firmware should still ensure accesses to AMU registers
|
||||
are not trapped in EL2/EL3.
|
||||
|
||||
The fixed counters of AMUv1 are accessible though the following system
|
||||
register definitions:
|
||||
- SYS_AMEVCNTR0_CORE_EL0
|
||||
- SYS_AMEVCNTR0_CONST_EL0
|
||||
- SYS_AMEVCNTR0_INST_RET_EL0
|
||||
- SYS_AMEVCNTR0_MEM_STALL_EL0
|
||||
|
||||
Auxiliary platform specific counters can be accessed using
|
||||
SYS_AMEVCNTR1_EL0(n), where n is a value between 0 and 15.
|
||||
|
||||
Details can be found in: arch/arm64/include/asm/sysreg.h.
|
||||
|
||||
|
||||
Userspace access
|
||||
----------------
|
||||
|
||||
Currently, access from userspace to the AMU registers is disabled due to:
|
||||
- Security reasons: they might expose information about code executed in
|
||||
secure mode.
|
||||
- Purpose: AMU counters are intended for system management use.
|
||||
|
||||
Also, the presence of the feature is not visible to userspace.
|
||||
|
||||
|
||||
Virtualization
|
||||
--------------
|
||||
|
||||
Currently, access from userspace (EL0) and kernelspace (EL1) on the KVM
|
||||
guest side is disabled due to:
|
||||
- Security reasons: they might expose information about code executed
|
||||
by other guests or the host.
|
||||
|
||||
Any attempt to access the AMU registers will result in an UNDEFINED
|
||||
exception being injected into the guest.
|
||||
|
|
@ -245,6 +245,20 @@ Before jumping into the kernel, the following conditions must be met:
|
|||
- HCR_EL2.APK (bit 40) must be initialised to 0b1
|
||||
- HCR_EL2.API (bit 41) must be initialised to 0b1
|
||||
|
||||
For CPUs with Activity Monitors Unit v1 (AMUv1) extension present:
|
||||
- If EL3 is present:
|
||||
CPTR_EL3.TAM (bit 30) must be initialised to 0b0
|
||||
CPTR_EL2.TAM (bit 30) must be initialised to 0b0
|
||||
AMCNTENSET0_EL0 must be initialised to 0b1111
|
||||
AMCNTENSET1_EL0 must be initialised to a platform specific value
|
||||
having 0b1 set for the corresponding bit for each of the auxiliary
|
||||
counters present.
|
||||
- If the kernel is entered at EL1:
|
||||
AMCNTENSET0_EL0 must be initialised to 0b1111
|
||||
AMCNTENSET1_EL0 must be initialised to a platform specific value
|
||||
having 0b1 set for the corresponding bit for each of the auxiliary
|
||||
counters present.
|
||||
|
||||
The requirements described above for CPU mode, caches, MMUs, architected
|
||||
timers, coherency and system registers apply to all CPUs. All CPUs must
|
||||
enter the kernel in the same exception level.
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ ARM64 Architecture
|
|||
:maxdepth: 1
|
||||
|
||||
acpi_object_usage
|
||||
amu
|
||||
arm-acpi
|
||||
booting
|
||||
cpu-feature-registers
|
||||
|
|
|
|||
|
|
@ -123,6 +123,7 @@
|
|||
<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'/>
|
||||
|
|
@ -131,6 +132,7 @@
|
|||
<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='0x8ec52cd5'/>
|
||||
<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='0x26a6711d'/>
|
||||
|
|
@ -787,6 +789,7 @@
|
|||
<elf-symbol name='d_move' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0bcb705'/>
|
||||
<elf-symbol name='d_obtain_alias' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7c5f23d'/>
|
||||
<elf-symbol name='d_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6f030e50'/>
|
||||
<elf-symbol name='dapm_kcontrol_get_value' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xba328a62'/>
|
||||
<elf-symbol name='dapm_pinctrl_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73a849d8'/>
|
||||
<elf-symbol name='dapm_regulator_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa18a32a'/>
|
||||
<elf-symbol name='datagram_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7370279f'/>
|
||||
|
|
@ -1309,6 +1312,7 @@
|
|||
<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_duplicate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47f985aa'/>
|
||||
<elf-symbol name='drm_edid_get_monitor_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x712e21d'/>
|
||||
<elf-symbol name='drm_edid_is_valid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f88521'/>
|
||||
<elf-symbol name='drm_encoder_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9f82898'/>
|
||||
<elf-symbol name='drm_encoder_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x422fda30'/>
|
||||
<elf-symbol name='drm_err' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd8b879a'/>
|
||||
|
|
@ -2320,6 +2324,7 @@
|
|||
<elf-symbol name='mempool_kmalloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd35a6d31'/>
|
||||
<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='memunmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e9fdd9d'/>
|
||||
<elf-symbol name='memweight' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3fe2ccbe'/>
|
||||
<elf-symbol name='mfd_add_devices' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x97997a13'/>
|
||||
|
|
@ -3507,6 +3512,7 @@
|
|||
<elf-symbol name='snd_pcm_limit_hw_rates' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xccb8aa12'/>
|
||||
<elf-symbol name='snd_pcm_new' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5fe722b4'/>
|
||||
<elf-symbol name='snd_pcm_period_elapsed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x143c9af1'/>
|
||||
<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_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7142e7b3'/>
|
||||
|
|
@ -14625,7 +14631,7 @@
|
|||
</data-member>
|
||||
</class-decl>
|
||||
<var-decl name='cpu_hwcap_keys' type-id='6288ed8b' mangled-name='cpu_hwcap_keys' visibility='default' filepath='arch/arm64/kernel/cpufeature.c' line='82' column='1' elf-symbol-id='cpu_hwcap_keys'/>
|
||||
<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='2021' column='1' elf-symbol-id='arm64_const_caps_ready'/>
|
||||
<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='2087' column='1' elf-symbol-id='arm64_const_caps_ready'/>
|
||||
<var-decl name='cpu_hwcaps' type-id='f066dd3c' mangled-name='cpu_hwcaps' visibility='default' filepath='arch/arm64/kernel/cpufeature.c' line='41' column='1' elf-symbol-id='cpu_hwcaps'/>
|
||||
<function-decl name='bsearch' mangled-name='bsearch' filepath='include/linux/bsearch.h' line='7' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bsearch'>
|
||||
<parameter type-id='eaa32e2f'/>
|
||||
|
|
@ -14944,7 +14950,7 @@
|
|||
<var-decl name='pgsize_bitmap' type-id='7359adad' visibility='default' filepath='include/linux/iommu.h' line='311' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='2240'>
|
||||
<var-decl name='owner' type-id='2730d016' visibility='default' filepath='include/linux/iommu.h' line='312' column='1'/>
|
||||
<var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/iommu.h' line='312' column='1'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<enum-decl name='iommu_cap' filepath='include/linux/iommu.h' line='99' column='1' id='031224de'>
|
||||
|
|
@ -15459,20 +15465,6 @@
|
|||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='block/blk-core.c' language='LANG_C89'>
|
||||
<union-decl name='__anonymous_union__1' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='170' column='1' id='df8866ad'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='rb_node' type-id='2a8a6332' visibility='default' filepath='include/linux/blkdev.h' line='171' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='special_vec' type-id='40af3608' visibility='default' filepath='include/linux/blkdev.h' line='172' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='completion_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/blkdev.h' line='173' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='error_count' type-id='95e97e5e' visibility='default' filepath='include/linux/blkdev.h' line='174' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<typedef-decl name='blk_mq_req_flags_t' type-id='3f1a6b60' filepath='include/linux/blk_types.h' line='268' column='1' id='346d62be'/>
|
||||
<function-decl name='blk_queue_flag_test_and_set' mangled-name='blk_queue_flag_test_and_set' filepath='block/blk-core.c' line='104' 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='104' column='1'/>
|
||||
|
|
@ -16239,22 +16231,6 @@
|
|||
<var-decl name='sg_list' type-id='bf3ef905' visibility='default' filepath='include/linux/bsg-lib.h' line='26' column='1'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<union-decl name='__anonymous_union__3' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/iocontext.h' line='83' column='1' id='df248744'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='q_node' type-id='72f469ec' visibility='default' filepath='include/linux/iocontext.h' line='84' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<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__4' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/iocontext.h' line='87' column='1' id='eb20ccf1'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='ioc_node' type-id='03a4a074' visibility='default' filepath='include/linux/iocontext.h' line='88' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='__rcu_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/iocontext.h' line='89' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<typedef-decl name='bsg_job_fn' type-id='f6192657' filepath='include/linux/bsg-lib.h' line='20' column='1' id='46181ad5'/>
|
||||
<typedef-decl name='bsg_timeout_fn' type-id='56710942' filepath='include/linux/bsg-lib.h' line='21' column='1' id='4425ad49'/>
|
||||
<pointer-type-def type-id='d3e31bbb' size-in-bits='64' id='397dd6bb'/>
|
||||
|
|
@ -23271,14 +23247,6 @@
|
|||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/base/power/common.c' language='LANG_C89'>
|
||||
<class-decl name='pm_domain_data' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/pm_domain.h' line='172' 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='173' 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='174' column='1'/>
|
||||
</data-member>
|
||||
</class-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'/>
|
||||
|
|
@ -28156,7 +28124,7 @@
|
|||
<return type-id='19c2251e'/>
|
||||
</function-type>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/clocksource/timer-mediatek.c' language='LANG_C89'>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/clocksource/timer-sun4i.c' language='LANG_C89'>
|
||||
<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'/>
|
||||
|
|
@ -28334,6 +28302,10 @@
|
|||
<parameter type-id='b2168730'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='of_machine_is_compatible' mangled-name='of_machine_is_compatible' filepath='include/linux/of.h' line='398' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_machine_is_compatible'>
|
||||
<parameter type-id='80f4b756'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='clockevents_config_and_register' mangled-name='clockevents_config_and_register' filepath='include/linux/clockchips.h' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clockevents_config_and_register'>
|
||||
<parameter type-id='aff725d5'/>
|
||||
<parameter type-id='f0981eeb'/>
|
||||
|
|
@ -31632,7 +31604,6 @@
|
|||
<pointer-type-def type-id='c2623161' size-in-bits='64' id='4b939911'/>
|
||||
<pointer-type-def type-id='d12f4a1e' size-in-bits='64' id='74d89ebe'/>
|
||||
<pointer-type-def type-id='6f36f2ec' size-in-bits='64' id='d00fb93a'/>
|
||||
<pointer-type-def type-id='f8a4685d' size-in-bits='64' id='07df1a3d'/>
|
||||
<function-decl name='dma_fence_init' mangled-name='dma_fence_init' filepath='include/linux/dma-fence.h' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_init'>
|
||||
<parameter type-id='28271da3'/>
|
||||
<parameter type-id='13d85783'/>
|
||||
|
|
@ -31688,7 +31659,7 @@
|
|||
<class-decl name='dma_buf_attachment' is-struct='yes' visibility='default' is-declaration-only='yes' id='f01bc099'/>
|
||||
<class-decl name='drm_agp_head' is-struct='yes' visibility='default' is-declaration-only='yes' id='874fb8c0'/>
|
||||
<class-decl name='drm_gem_object' is-struct='yes' visibility='default' is-declaration-only='yes' id='3bc524c0'/>
|
||||
<class-decl name='drm_master' is-struct='yes' visibility='default' is-declaration-only='yes' id='f8a4685e'/>
|
||||
<class-decl name='drm_master' is-struct='yes' visibility='default' is-declaration-only='yes' id='f8a4685d'/>
|
||||
<class-decl name='drm_panel' is-struct='yes' visibility='default' is-declaration-only='yes' id='b9675ea0'/>
|
||||
<class-decl name='drm_self_refresh_data' is-struct='yes' visibility='default' is-declaration-only='yes' id='12506762'/>
|
||||
<class-decl name='drm_vram_mm' is-struct='yes' visibility='default' is-declaration-only='yes' id='8008efb8'/>
|
||||
|
|
@ -31921,7 +31892,7 @@
|
|||
<var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/drm/drm_device.h' line='93' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='576'>
|
||||
<var-decl name='master' type-id='07df1a3e' visibility='default' filepath='include/drm/drm_device.h' line='101' column='1'/>
|
||||
<var-decl name='master' type-id='07df1a3d' visibility='default' filepath='include/drm/drm_device.h' line='101' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='640'>
|
||||
<var-decl name='driver_features' type-id='19c2251e' visibility='default' filepath='include/drm/drm_device.h' line='111' column='1'/>
|
||||
|
|
@ -32219,7 +32190,7 @@
|
|||
<var-decl name='is_master' type-id='b50a4934' visibility='default' filepath='include/drm/drm_file.h' line='212' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='64'>
|
||||
<var-decl name='master' type-id='07df1a3e' visibility='default' filepath='include/drm/drm_file.h' line='224' column='1'/>
|
||||
<var-decl name='master' type-id='07df1a3d' visibility='default' filepath='include/drm/drm_file.h' line='224' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='128'>
|
||||
<var-decl name='pid' type-id='b94e5398' visibility='default' filepath='include/drm/drm_file.h' line='227' column='1'/>
|
||||
|
|
@ -34832,7 +34803,7 @@
|
|||
<pointer-type-def type-id='272672f5' size-in-bits='64' id='b121f651'/>
|
||||
<pointer-type-def type-id='c33808e6' size-in-bits='64' id='38d8fc10'/>
|
||||
<pointer-type-def type-id='b6b06c66' size-in-bits='64' id='76ba9b40'/>
|
||||
<pointer-type-def type-id='f8a4685e' size-in-bits='64' id='07df1a3e'/>
|
||||
<pointer-type-def type-id='f8a4685d' size-in-bits='64' id='07df1a3d'/>
|
||||
<pointer-type-def type-id='d5cb77a8' size-in-bits='64' id='6c3b3f8e'/>
|
||||
<pointer-type-def type-id='46d25262' size-in-bits='64' id='28cbbf40'/>
|
||||
<pointer-type-def type-id='350f4182' size-in-bits='64' id='c5417630'/>
|
||||
|
|
@ -35344,7 +35315,7 @@
|
|||
</function-type>
|
||||
<function-type size-in-bits='64' id='fbd40bed'>
|
||||
<parameter type-id='8898134d'/>
|
||||
<parameter type-id='07df1a3e'/>
|
||||
<parameter type-id='07df1a3d'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-type>
|
||||
<function-type size-in-bits='64' id='7ac88bec'>
|
||||
|
|
@ -35616,7 +35587,7 @@
|
|||
</function-type>
|
||||
<function-type size-in-bits='64' id='a7bf86ca'>
|
||||
<parameter type-id='8898134d'/>
|
||||
<parameter type-id='07df1a3e'/>
|
||||
<parameter type-id='07df1a3d'/>
|
||||
<return type-id='48b5725f'/>
|
||||
</function-type>
|
||||
<function-type size-in-bits='64' id='b7290258'>
|
||||
|
|
@ -36712,7 +36683,7 @@
|
|||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='drm_dev_alloc' mangled-name='drm_dev_alloc' filepath='drivers/gpu/drm/drm_drv.c' line='819' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_dev_alloc'>
|
||||
<parameter type-id='1d52bc4e' name='driver' filepath='drivers/gpu/drm/drm_drv.c' line='819' column='1'/>
|
||||
<parameter type-id='1d52bc4d' name='driver' filepath='drivers/gpu/drm/drm_drv.c' line='819' column='1'/>
|
||||
<parameter type-id='fa0b179b' name='parent' filepath='drivers/gpu/drm/drm_drv.c' line='820' column='1'/>
|
||||
<return type-id='8898134d'/>
|
||||
</function-decl>
|
||||
|
|
@ -37030,6 +37001,10 @@
|
|||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/gpu/drm/drm_edid.c' language='LANG_C89'>
|
||||
<pointer-type-def type-id='c3fc04e5' size-in-bits='64' id='e879a339'/>
|
||||
<function-decl name='drm_edid_is_valid' mangled-name='drm_edid_is_valid' filepath='drivers/gpu/drm/drm_edid.c' line='1484' 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='1484' column='1'/>
|
||||
<return type-id='b50a4934'/>
|
||||
</function-decl>
|
||||
<function-decl name='drm_add_edid_modes' mangled-name='drm_add_edid_modes' filepath='drivers/gpu/drm/drm_edid.c' line='4868' 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='4868' column='1'/>
|
||||
<parameter type-id='c91d1bf1' name='edid' filepath='drivers/gpu/drm/drm_edid.c' line='4868' column='1'/>
|
||||
|
|
@ -37112,7 +37087,7 @@
|
|||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/gpu/drm/drm_file.c' language='LANG_C89'>
|
||||
<class-decl name='drm_master' size-in-bits='1280' is-struct='yes' visibility='default' filepath='include/drm/drm_auth.h' line='71' column='1' id='f8a4685d'>
|
||||
<class-decl name='drm_master' size-in-bits='1280' is-struct='yes' visibility='default' filepath='include/drm/drm_auth.h' line='71' column='1' id='f8a4685e'>
|
||||
<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='72' column='1'/>
|
||||
</data-member>
|
||||
|
|
@ -37174,6 +37149,7 @@
|
|||
</enum-decl>
|
||||
<typedef-decl name='drm_ioctl_t' type-id='4e407315' filepath='include/drm/drm_ioctl.h' line='54' column='1' id='28063720'/>
|
||||
<pointer-type-def type-id='28063720' size-in-bits='64' id='e2cefc47'/>
|
||||
<pointer-type-def type-id='f8a4685e' size-in-bits='64' id='07df1a3e'/>
|
||||
<pointer-type-def type-id='2aa44dc9' size-in-bits='64' id='16ab0351'/>
|
||||
<function-decl name='drm_open' mangled-name='drm_open' filepath='drivers/gpu/drm/drm_file.c' line='370' 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='370' column='1'/>
|
||||
|
|
@ -37282,14 +37258,6 @@
|
|||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/gpu/drm/drm_gem.c' language='LANG_C89'>
|
||||
<class-decl name='drm_property' is-struct='yes' visibility='default' is-declaration-only='yes' id='811caa37'/>
|
||||
<union-decl name='__anonymous_union__2' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='725' column='1' id='67f3b11a'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='i_fop' type-id='61758ee5' visibility='default' filepath='include/linux/fs.h' line='726' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='free_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='727' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<pointer-type-def type-id='811caa37' size-in-bits='64' id='26ea5d4d'/>
|
||||
<pointer-type-def type-id='743d7e52' size-in-bits='64' id='e05b33b0'/>
|
||||
<function-decl name='drm_vma_offset_manager_init' mangled-name='drm_vma_offset_manager_init' filepath='include/drm/drm_vma_manager.h' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_vma_offset_manager_init'>
|
||||
|
|
@ -37758,7 +37726,7 @@
|
|||
<var-decl name='priv' type-id='eaa32e2f' visibility='default' filepath='include/linux/firmware.h' line='18' column='1'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='150' column='1' id='787e8238'>
|
||||
<union-decl name='__anonymous_union__3' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='150' column='1' id='787e8238'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='pt_mm' type-id='df4b7819' visibility='default' filepath='include/linux/mm_types.h' line='151' column='1'/>
|
||||
</data-member>
|
||||
|
|
@ -38296,6 +38264,14 @@
|
|||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/gpu/drm/drm_panel.c' language='LANG_C89'>
|
||||
<union-decl name='__anonymous_union__2' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='725' column='1' id='67f3b11a'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='i_fop' type-id='61758ee5' visibility='default' filepath='include/linux/fs.h' line='726' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='free_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='727' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<function-decl name='drm_panel_init' mangled-name='drm_panel_init' filepath='drivers/gpu/drm/drm_panel.c' line='51' 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='51' column='1'/>
|
||||
<return type-id='48b5725f'/>
|
||||
|
|
@ -57266,6 +57242,17 @@
|
|||
</function-type>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/net/tun.c' language='LANG_C89'>
|
||||
<union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='692' column='1' id='0c0ceec8'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='' type-id='86f22dd2' visibility='default' filepath='include/linux/skbuff.h' line='693' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='rbnode' type-id='2a8a6332' visibility='default' filepath='include/linux/skbuff.h' line='707' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/skbuff.h' line='708' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<pointer-type-def type-id='06c0432f' size-in-bits='64' id='a8d434b7'/>
|
||||
<function-decl name='netdev_alloc_frag' mangled-name='netdev_alloc_frag' filepath='include/linux/skbuff.h' line='2771' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_alloc_frag'>
|
||||
<parameter type-id='f0981eeb'/>
|
||||
|
|
@ -65550,10 +65537,6 @@
|
|||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/of/base.c' language='LANG_C89'>
|
||||
<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_machine_is_compatible' mangled-name='of_machine_is_compatible' filepath='drivers/of/base.c' line='605' 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='605' column='1'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='of_get_compatible_child' mangled-name='of_get_compatible_child' filepath='drivers/of/base.c' line='860' 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='860' column='1'/>
|
||||
<parameter type-id='80f4b756' name='compatible' filepath='drivers/of/base.c' line='861' column='1'/>
|
||||
|
|
@ -72176,30 +72159,6 @@
|
|||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/scsi/scsi_logging.c' language='LANG_C89'>
|
||||
<class-decl name='Scsi_Host' is-struct='yes' visibility='default' is-declaration-only='yes' id='83cec606'/>
|
||||
<union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='160' column='1' id='2f76bc4b'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='hash' type-id='03a4a074' visibility='default' filepath='include/linux/blkdev.h' line='161' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='ipi_list' type-id='72f469ec' visibility='default' filepath='include/linux/blkdev.h' line='162' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__2' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='183' column='1' id='da6ad6a2'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='elv' type-id='a570972f' visibility='default' filepath='include/linux/blkdev.h' line='187' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='flush' type-id='9e18948c' visibility='default' filepath='include/linux/blkdev.h' line='193' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__3' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='238' column='1' id='097c5bdb'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='csd' type-id='bb75ea85' visibility='default' filepath='include/linux/blkdev.h' line='239' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='fifo_time' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='240' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<pointer-type-def type-id='83cec606' size-in-bits='64' id='a970a64d'/>
|
||||
<qualified-type-def type-id='d6746ce3' const='yes' id='f64a160a'/>
|
||||
<pointer-type-def type-id='f64a160a' size-in-bits='64' id='d6a0d460'/>
|
||||
|
|
@ -78139,6 +78098,14 @@
|
|||
<var-decl name='write_lock' type-id='925167dc' visibility='default' filepath='include/linux/serdev.h' line='47' column='1'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<class-decl name='pm_domain_data' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/pm_domain.h' line='172' 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='173' 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='174' column='1'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<class-decl name='serdev_controller' size-in-bits='7552' is-struct='yes' visibility='default' filepath='include/linux/serdev.h' line='103' column='1' id='6c569e75'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
<var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/serdev.h' line='104' column='1'/>
|
||||
|
|
@ -100724,13 +100691,13 @@
|
|||
<var-decl name='queuelist' type-id='72f469ec' visibility='default' filepath='include/linux/blkdev.h' line='151' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='704'>
|
||||
<var-decl name='' type-id='2f76bc4c' visibility='default' filepath='include/linux/blkdev.h' line='160' column='1'/>
|
||||
<var-decl name='' type-id='2f76bc4b' visibility='default' filepath='include/linux/blkdev.h' line='160' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='832'>
|
||||
<var-decl name='' type-id='df8866ae' visibility='default' filepath='include/linux/blkdev.h' line='170' column='1'/>
|
||||
<var-decl name='' type-id='df8866ad' visibility='default' filepath='include/linux/blkdev.h' line='170' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1024'>
|
||||
<var-decl name='' type-id='da6ad6a3' visibility='default' filepath='include/linux/blkdev.h' line='183' column='1'/>
|
||||
<var-decl name='' type-id='da6ad6a2' visibility='default' filepath='include/linux/blkdev.h' line='183' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1280'>
|
||||
<var-decl name='rq_disk' type-id='33c599db' visibility='default' filepath='include/linux/blkdev.h' line='196' column='1'/>
|
||||
|
|
@ -100772,7 +100739,7 @@
|
|||
<var-decl name='deadline' type-id='7359adad' visibility='default' filepath='include/linux/blkdev.h' line='236' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1792'>
|
||||
<var-decl name='' type-id='097c5bdc' visibility='default' filepath='include/linux/blkdev.h' line='238' column='1'/>
|
||||
<var-decl name='' type-id='097c5bdb' visibility='default' filepath='include/linux/blkdev.h' line='238' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='2048'>
|
||||
<var-decl name='end_io' type-id='5afdaa66' visibility='default' filepath='include/linux/blkdev.h' line='246' column='1'/>
|
||||
|
|
@ -104935,7 +104902,7 @@
|
|||
<parameter type-id='eaa32e2f'/>
|
||||
<return type-id='eaa32e2f'/>
|
||||
</function-type>
|
||||
<union-decl name='__anonymous_union__17' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='238' column='1' id='097c5bdc'>
|
||||
<union-decl name='__anonymous_union__17' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='238' column='1' id='097c5bdb'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='csd' type-id='bb75ea85' visibility='default' filepath='include/linux/blkdev.h' line='239' column='1'/>
|
||||
</data-member>
|
||||
|
|
@ -104951,7 +104918,7 @@
|
|||
<var-decl name='tp' type-id='08e531de' visibility='default' filepath='include/linux/trace_events.h' line='260' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__12' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='160' column='1' id='2f76bc4c'>
|
||||
<union-decl name='__anonymous_union__12' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='160' column='1' id='2f76bc4b'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='hash' type-id='03a4a074' visibility='default' filepath='include/linux/blkdev.h' line='161' column='1'/>
|
||||
</data-member>
|
||||
|
|
@ -104959,7 +104926,7 @@
|
|||
<var-decl name='ipi_list' type-id='72f469ec' visibility='default' filepath='include/linux/blkdev.h' line='162' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__13' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='170' column='1' id='df8866ae'>
|
||||
<union-decl name='__anonymous_union__13' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='170' column='1' id='df8866ad'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='rb_node' type-id='2a8a6332' visibility='default' filepath='include/linux/blkdev.h' line='171' column='1'/>
|
||||
</data-member>
|
||||
|
|
@ -104973,7 +104940,7 @@
|
|||
<var-decl name='error_count' type-id='95e97e5e' visibility='default' filepath='include/linux/blkdev.h' line='174' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__14' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='183' column='1' id='da6ad6a3'>
|
||||
<union-decl name='__anonymous_union__14' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='183' column='1' id='da6ad6a2'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='elv' type-id='a570972f' visibility='default' filepath='include/linux/blkdev.h' line='187' column='1'/>
|
||||
</data-member>
|
||||
|
|
@ -105193,6 +105160,22 @@
|
|||
<var-decl name='pwd' type-id='b5382ece' visibility='default' filepath='include/linux/fs_struct.h' line='15' column='1'/>
|
||||
</data-member>
|
||||
</class-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='df248744'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='q_node' type-id='72f469ec' visibility='default' filepath='include/linux/iocontext.h' line='84' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<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__1' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/iocontext.h' line='87' column='1' id='eb20ccf1'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='ioc_node' type-id='03a4a074' visibility='default' filepath='include/linux/iocontext.h' line='88' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='__rcu_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/iocontext.h' line='89' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<var-decl name='overflowuid' type-id='95e97e5e' mangled-name='overflowuid' visibility='default' filepath='kernel/sys.c' line='135' column='1' elf-symbol-id='overflowuid'/>
|
||||
<var-decl name='overflowgid' type-id='95e97e5e' mangled-name='overflowgid' visibility='default' filepath='kernel/sys.c' line='136' column='1' elf-symbol-id='overflowgid'/>
|
||||
<function-decl name='set_user_nice' mangled-name='set_user_nice' filepath='include/linux/sched.h' line='1624' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_user_nice'>
|
||||
|
|
@ -107363,6 +107346,22 @@
|
|||
<parameter type-id='b59d7dce' name='recsize' filepath='lib/kfifo.c' line='477' column='1'/>
|
||||
<return type-id='f0981eeb'/>
|
||||
</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_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>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='lib/kobject_uevent.c' language='LANG_C89'>
|
||||
<function-decl name='kobject_uevent' mangled-name='kobject_uevent' filepath='lib/kobject_uevent.c' line='639' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kobject_uevent'>
|
||||
|
|
@ -107676,6 +107675,12 @@
|
|||
<parameter type-id='80f4b756' name='str' filepath='lib/string.c' line='714' column='1'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='memset32' mangled-name='memset32' filepath='lib/string.c' line='784' 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='784' column='1'/>
|
||||
<parameter type-id='8f92235e' name='v' filepath='lib/string.c' line='784' column='1'/>
|
||||
<parameter type-id='b59d7dce' name='count' filepath='lib/string.c' line='784' column='1'/>
|
||||
<return type-id='eaa32e2f'/>
|
||||
</function-decl>
|
||||
<function-decl name='bcmp' mangled-name='bcmp' filepath='lib/string.c' line='905' 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='905' column='1'/>
|
||||
<parameter type-id='eaa32e2f' name='b' filepath='lib/string.c' line='905' column='1'/>
|
||||
|
|
@ -109505,10 +109510,21 @@
|
|||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='net/core/net_namespace.c' language='LANG_C89'>
|
||||
<union-decl name='__anonymous_union__4' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/sock.h' line='199' column='1' id='56935796'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='skc_flags' type-id='7359adad' visibility='default' filepath='include/net/sock.h' line='200' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='skc_listener' type-id='f772df6d' visibility='default' filepath='include/net/sock.h' line='201' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='skc_tw_dr' type-id='b7ab21fc' visibility='default' filepath='include/net/sock.h' line='202' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<var-decl name='net_namespace_list' type-id='72f469ec' mangled-name='net_namespace_list' visibility='default' filepath='net/core/net_namespace.c' line='35' column='1' elf-symbol-id='net_namespace_list'/>
|
||||
<var-decl name='init_net' type-id='bd965181' mangled-name='init_net' visibility='default' filepath='net/core/net_namespace.c' line='46' column='1' elf-symbol-id='init_net'/>
|
||||
<function-decl name='__put_net' mangled-name='__put_net' filepath='net/core/net_namespace.c' line='638' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__put_net'>
|
||||
<parameter type-id='a2bff677' name='net' filepath='net/core/net_namespace.c' line='638' column='1'/>
|
||||
<parameter type-id='a2bff676' name='net' filepath='net/core/net_namespace.c' line='638' column='1'/>
|
||||
<return type-id='48b5725f'/>
|
||||
</function-decl>
|
||||
</abi-instr>
|
||||
|
|
@ -116297,14 +116313,6 @@
|
|||
</function-type>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='net/netfilter/nf_nat_masquerade.c' language='LANG_C89'>
|
||||
<union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='include/linux/bpf.h' line='420' column='1' id='b597c0fb'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/bpf.h' line='421' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/bpf.h' line='422' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<function-decl name='inet_select_addr' mangled-name='inet_select_addr' filepath='include/linux/inetdevice.h' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='inet_select_addr'>
|
||||
<parameter type-id='2ce52478'/>
|
||||
<parameter type-id='f0981eeb'/>
|
||||
|
|
@ -117822,17 +117830,6 @@
|
|||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='net/sched/cls_bpf.c' language='LANG_C89'>
|
||||
<union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='692' column='1' id='0c0ceec8'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='' type-id='86f22dd2' visibility='default' filepath='include/linux/skbuff.h' line='693' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='rbnode' type-id='2a8a6332' visibility='default' filepath='include/linux/skbuff.h' line='707' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/skbuff.h' line='708' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<function-decl name='bpf_prog_create' mangled-name='bpf_prog_create' filepath='include/linux/filter.h' line='889' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_create'>
|
||||
<parameter type-id='50b674cc'/>
|
||||
<parameter type-id='e93ad915'/>
|
||||
|
|
@ -123236,7 +123233,15 @@
|
|||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='net/wireless/nl80211.c' language='LANG_C89'>
|
||||
<union-decl name='__anonymous_union__15' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='957' column='1' id='8c8e2782'>
|
||||
<union-decl name='__anonymous_union__2' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='include/linux/bpf.h' line='420' column='1' id='b597c0fb'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='work' type-id='ef9025d0' visibility='default' filepath='include/linux/bpf.h' line='421' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/bpf.h' line='422' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__16' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='957' column='1' id='8c8e2782'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='fu_llist' type-id='c5ccfee8' visibility='default' filepath='include/linux/fs.h' line='958' column='1'/>
|
||||
</data-member>
|
||||
|
|
@ -124706,6 +124711,44 @@
|
|||
<array-type-def dimensions='1' type-id='ea86de29' size-in-bits='48' id='51f2d827'>
|
||||
<subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
|
||||
</array-type-def>
|
||||
<union-decl name='__anonymous_union__1' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='160' column='1' id='2f76bc4c'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='hash' type-id='03a4a074' visibility='default' filepath='include/linux/blkdev.h' line='161' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='ipi_list' type-id='72f469ec' visibility='default' filepath='include/linux/blkdev.h' line='162' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__2' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='170' column='1' id='df8866ae'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='rb_node' type-id='2a8a6332' visibility='default' filepath='include/linux/blkdev.h' line='171' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='special_vec' type-id='40af3608' visibility='default' filepath='include/linux/blkdev.h' line='172' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='completion_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/blkdev.h' line='173' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='error_count' type-id='95e97e5e' visibility='default' filepath='include/linux/blkdev.h' line='174' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__3' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='183' column='1' id='da6ad6a3'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='elv' type-id='a570972f' visibility='default' filepath='include/linux/blkdev.h' line='187' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='flush' type-id='9e18948c' visibility='default' filepath='include/linux/blkdev.h' line='193' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__4' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='238' column='1' id='097c5bdc'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='csd' type-id='bb75ea85' visibility='default' filepath='include/linux/blkdev.h' line='239' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='fifo_time' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='240' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<class-decl name='element' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/linux/ieee80211.h' line='3449' column='1' id='251eca3f'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
<var-decl name='id' type-id='f9b06939' visibility='default' filepath='include/linux/ieee80211.h' line='3450' column='1'/>
|
||||
|
|
@ -126917,6 +126960,10 @@
|
|||
<parameter type-id='f0981eeb' name='rate' filepath='sound/core/pcm_misc.c' line='510' column='1'/>
|
||||
<return type-id='f0981eeb'/>
|
||||
</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='528' 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='528' 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='589' 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='589' column='1'/>
|
||||
<parameter type-id='f0981eeb' name='rate_max' filepath='sound/core/pcm_misc.c' line='590' column='1'/>
|
||||
|
|
@ -129736,7 +129783,13 @@
|
|||
<var-decl name='dobj' type-id='01edcafc' visibility='default' filepath='include/sound/soc.h' line='1234' column='1'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<qualified-type-def type-id='8755a6ff' const='yes' id='bae39662'/>
|
||||
<pointer-type-def type-id='bae39662' size-in-bits='64' id='7c459358'/>
|
||||
<pointer-type-def type-id='044208ec' size-in-bits='64' id='acf1578a'/>
|
||||
<function-decl name='dapm_kcontrol_get_value' mangled-name='dapm_kcontrol_get_value' filepath='sound/soc/soc-dapm.c' line='533' 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='533' column='1'/>
|
||||
<return type-id='f0981eeb'/>
|
||||
</function-decl>
|
||||
<function-decl name='snd_soc_dapm_kcontrol_widget' mangled-name='snd_soc_dapm_kcontrol_widget' filepath='sound/soc/soc-dapm.c' line='576' 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='577' column='1'/>
|
||||
<return type-id='810606ec'/>
|
||||
|
|
@ -129950,14 +130003,6 @@
|
|||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='sound/soc/soc-jack.c' language='LANG_C89'>
|
||||
<union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/sound/info.h' line='65' column='1' id='74c3182b'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='text' type-id='cf87b76c' visibility='default' filepath='include/sound/info.h' line='66' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='ops' type-id='d9cfece5' visibility='default' filepath='include/sound/info.h' line='67' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<class-decl name='snd_soc_jack_pin' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/sound/soc.h' line='647' 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.h' line='648' column='1'/>
|
||||
|
|
@ -130156,6 +130201,14 @@
|
|||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='sound/soc/soc-utils.c' language='LANG_C89'>
|
||||
<union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/sound/info.h' line='65' column='1' id='74c3182b'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='text' type-id='cf87b76c' visibility='default' filepath='include/sound/info.h' line='66' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='ops' type-id='d9cfece5' visibility='default' filepath='include/sound/info.h' line='67' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<qualified-type-def type-id='eacd353c' const='yes' id='4b09229d'/>
|
||||
<pointer-type-def type-id='4b09229d' size-in-bits='64' id='d661a615'/>
|
||||
<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'>
|
||||
|
|
|
|||
|
|
@ -228,6 +228,7 @@
|
|||
<elf-symbol name='backlight_device_set_brightness' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x812ce282'/>
|
||||
<elf-symbol name='backlight_device_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc8df79c4'/>
|
||||
<elf-symbol name='bin2hex' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd45cc6ca'/>
|
||||
<elf-symbol name='bio_crypt_should_process' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbacb3e45'/>
|
||||
<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_parselist' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b015d25'/>
|
||||
|
|
@ -840,6 +841,7 @@
|
|||
<elf-symbol name='drm_dp_update_payload_part1' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9071c8ec'/>
|
||||
<elf-symbol name='drm_dp_update_payload_part2' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd655416c'/>
|
||||
<elf-symbol name='drm_edid_duplicate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x47f985aa'/>
|
||||
<elf-symbol name='drm_edid_is_valid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f88521'/>
|
||||
<elf-symbol name='drm_encoder_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9f82898'/>
|
||||
<elf-symbol name='drm_encoder_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x422fda30'/>
|
||||
<elf-symbol name='drm_err' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd8b879a'/>
|
||||
|
|
@ -3751,7 +3753,7 @@
|
|||
</data-member>
|
||||
</class-decl>
|
||||
<var-decl name='cpu_hwcap_keys' type-id='6288ed8b' mangled-name='cpu_hwcap_keys' visibility='default' filepath='arch/arm64/kernel/cpufeature.c' line='82' column='1' elf-symbol-id='cpu_hwcap_keys'/>
|
||||
<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='2021' column='1' elf-symbol-id='arm64_const_caps_ready'/>
|
||||
<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='2087' column='1' elf-symbol-id='arm64_const_caps_ready'/>
|
||||
<var-decl name='cpu_hwcaps' type-id='f066dd3c' mangled-name='cpu_hwcaps' visibility='default' filepath='arch/arm64/kernel/cpufeature.c' line='41' column='1' elf-symbol-id='cpu_hwcaps'/>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='arch/arm64/kernel/cpuinfo.c' language='LANG_C89'>
|
||||
|
|
@ -4910,6 +4912,12 @@
|
|||
<return type-id='48b5725f'/>
|
||||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='block/bio-crypt-ctx.c' language='LANG_C89'>
|
||||
<function-decl name='bio_crypt_should_process' mangled-name='bio_crypt_should_process' filepath='block/bio-crypt-ctx.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_crypt_should_process'>
|
||||
<parameter type-id='3dad1a48' name='rq' filepath='block/bio-crypt-ctx.c' line='82' column='1'/>
|
||||
<return type-id='b50a4934'/>
|
||||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='block/blk-core.c' language='LANG_C89'>
|
||||
<typedef-decl name='blk_mq_req_flags_t' type-id='3f1a6b60' filepath='include/linux/blk_types.h' line='268' column='1' id='346d62be'/>
|
||||
<function-decl name='blk_queue_flag_set' mangled-name='blk_queue_flag_set' filepath='block/blk-core.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_flag_set'>
|
||||
|
|
@ -7087,7 +7095,6 @@
|
|||
<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>
|
||||
<union-decl name='__anonymous_union__' is-anonymous='yes' visibility='default' filepath='include/linux/blk_types.h' line='186' column='1' id='2a125a28'/>
|
||||
<class-decl name='scsi_ioctl_command' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/scsi/scsi_ioctl.h' line='27' column='1' id='85553493'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
<var-decl name='inlen' type-id='f0981eeb' visibility='default' filepath='include/scsi/scsi_ioctl.h' line='28' column='1'/>
|
||||
|
|
@ -7106,7 +7113,7 @@
|
|||
<var-decl name='scsi_command_size_tbl' type-id='561570b5' mangled-name='scsi_command_size_tbl' visibility='default' filepath='block/scsi_ioctl.c' line='31' column='1' elf-symbol-id='scsi_command_size_tbl'/>
|
||||
<function-decl name='sg_scsi_ioctl' mangled-name='sg_scsi_ioctl' filepath='block/scsi_ioctl.c' line='404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_scsi_ioctl'>
|
||||
<parameter type-id='e7d2a5fd' name='q' filepath='block/scsi_ioctl.c' line='404' column='1'/>
|
||||
<parameter type-id='33c599db' name='disk' filepath='block/scsi_ioctl.c' line='404' column='1'/>
|
||||
<parameter type-id='33c599da' name='disk' filepath='block/scsi_ioctl.c' line='404' column='1'/>
|
||||
<parameter type-id='2665334e' name='mode' filepath='block/scsi_ioctl.c' line='404' column='1'/>
|
||||
<parameter type-id='2926d4f3' name='sic' filepath='block/scsi_ioctl.c' line='405' column='1'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
|
|
@ -10301,7 +10308,7 @@
|
|||
<return type-id='48b5725f'/>
|
||||
</function-decl>
|
||||
<function-decl name='of_clk_get_by_name' mangled-name='of_clk_get_by_name' filepath='include/linux/clk.h' line='967' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_clk_get_by_name'>
|
||||
<parameter type-id='9a537bbe'/>
|
||||
<parameter type-id='9a537bbf'/>
|
||||
<parameter type-id='80f4b756'/>
|
||||
<return type-id='7d0bc0eb'/>
|
||||
</function-decl>
|
||||
|
|
@ -11143,6 +11150,12 @@
|
|||
<return type-id='48b5725f'/>
|
||||
</function-type>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/clocksource/timer-sun4i.c' language='LANG_C89'>
|
||||
<function-decl name='of_machine_is_compatible' mangled-name='of_machine_is_compatible' filepath='include/linux/of.h' line='398' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_machine_is_compatible'>
|
||||
<parameter type-id='80f4b756'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/cpufreq/cpufreq.c' language='LANG_C89'>
|
||||
<class-decl name='cpufreq_driver' size-in-bits='1664' is-struct='yes' visibility='default' filepath='include/linux/cpufreq.h' line='289' column='1' id='9b8dc95a'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
|
|
@ -18980,6 +18993,10 @@
|
|||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/gpu/drm/drm_edid.c' language='LANG_C89'>
|
||||
<pointer-type-def type-id='c3fc04e5' size-in-bits='64' id='e879a339'/>
|
||||
<function-decl name='drm_edid_is_valid' mangled-name='drm_edid_is_valid' filepath='drivers/gpu/drm/drm_edid.c' line='1484' 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='1484' column='1'/>
|
||||
<return type-id='b50a4934'/>
|
||||
</function-decl>
|
||||
<function-decl name='drm_add_edid_modes' mangled-name='drm_add_edid_modes' filepath='drivers/gpu/drm/drm_edid.c' line='4868' 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='4868' column='1'/>
|
||||
<parameter type-id='c91d1bf1' name='edid' filepath='drivers/gpu/drm/drm_edid.c' line='4868' column='1'/>
|
||||
|
|
@ -19147,28 +19164,6 @@
|
|||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/gpu/drm/drm_gem.c' language='LANG_C89'>
|
||||
<class-decl name='drm_property' is-struct='yes' visibility='default' is-declaration-only='yes' id='811caa37'/>
|
||||
<union-decl name='__anonymous_union__7' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='170' column='1' id='df8866ad'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='rb_node' type-id='2a8a6332' visibility='default' filepath='include/linux/blkdev.h' line='171' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='special_vec' type-id='40af3609' visibility='default' filepath='include/linux/blkdev.h' line='172' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='completion_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/blkdev.h' line='173' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='error_count' type-id='95e97e5e' visibility='default' filepath='include/linux/blkdev.h' line='174' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__8' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='183' column='1' id='da6ad6a2'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='elv' type-id='a570972f' visibility='default' filepath='include/linux/blkdev.h' line='187' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='flush' type-id='9e18948c' visibility='default' filepath='include/linux/blkdev.h' line='193' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<pointer-type-def type-id='811caa37' size-in-bits='64' id='26ea5d4d'/>
|
||||
<pointer-type-def type-id='743d7e52' size-in-bits='64' id='e05b33b0'/>
|
||||
<function-decl name='drm_vma_offset_manager_init' mangled-name='drm_vma_offset_manager_init' filepath='include/drm/drm_vma_manager.h' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_vma_offset_manager_init'>
|
||||
|
|
@ -20180,33 +20175,33 @@
|
|||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/gpu/drm/drm_panel.c' language='LANG_C89'>
|
||||
<function-decl name='drm_panel_init' mangled-name='drm_panel_init' filepath='drivers/gpu/drm/drm_panel.c' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_init'>
|
||||
<parameter type-id='c5491078' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='51' column='1'/>
|
||||
<parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='51' column='1'/>
|
||||
<return type-id='48b5725f'/>
|
||||
</function-decl>
|
||||
<function-decl name='drm_panel_add' mangled-name='drm_panel_add' filepath='drivers/gpu/drm/drm_panel.c' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_add'>
|
||||
<parameter type-id='c5491078' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='67' column='1'/>
|
||||
<parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='67' 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='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_remove'>
|
||||
<parameter type-id='c5491078' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='83' column='1'/>
|
||||
<parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='83' column='1'/>
|
||||
<return type-id='48b5725f'/>
|
||||
</function-decl>
|
||||
<function-decl name='of_drm_find_panel' mangled-name='of_drm_find_panel' filepath='drivers/gpu/drm/drm_panel.c' line='248' 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='248' column='1'/>
|
||||
<return type-id='c5491078'/>
|
||||
<return type-id='c5491077'/>
|
||||
</function-decl>
|
||||
<function-decl name='drm_panel_notifier_register' mangled-name='drm_panel_notifier_register' filepath='drivers/gpu/drm/drm_panel.c' line='270' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_notifier_register'>
|
||||
<parameter type-id='c5491078' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='270' column='1'/>
|
||||
<parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='270' column='1'/>
|
||||
<parameter type-id='d504f73d' name='nb' filepath='drivers/gpu/drm/drm_panel.c' line='271' column='1'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='drm_panel_notifier_unregister' mangled-name='drm_panel_notifier_unregister' filepath='drivers/gpu/drm/drm_panel.c' line='277' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_notifier_unregister'>
|
||||
<parameter type-id='c5491078' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='277' column='1'/>
|
||||
<parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='277' column='1'/>
|
||||
<parameter type-id='d504f73d' name='nb' filepath='drivers/gpu/drm/drm_panel.c' line='278' column='1'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='drm_panel_notifier_call_chain' mangled-name='drm_panel_notifier_call_chain' filepath='drivers/gpu/drm/drm_panel.c' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_panel_notifier_call_chain'>
|
||||
<parameter type-id='c5491078' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='284' column='1'/>
|
||||
<parameter type-id='c5491077' name='panel' filepath='drivers/gpu/drm/drm_panel.c' line='284' column='1'/>
|
||||
<parameter type-id='7359adad' name='val' filepath='drivers/gpu/drm/drm_panel.c' line='285' column='1'/>
|
||||
<parameter type-id='eaa32e2f' name='v' filepath='drivers/gpu/drm/drm_panel.c' line='285' column='1'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
|
|
@ -21707,6 +21702,7 @@
|
|||
</function-type>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/iio/inkern.c' language='LANG_C89'>
|
||||
<class-decl name='file_operations' is-struct='yes' visibility='default' is-declaration-only='yes' id='7dffcde2'/>
|
||||
<class-decl name='iio_channel' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/iio/consumer.h' line='23' 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='24' column='1'/>
|
||||
|
|
@ -21718,6 +21714,8 @@
|
|||
<var-decl name='data' type-id='eaa32e2f' visibility='default' filepath='include/linux/iio/consumer.h' line='26' column='1'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<qualified-type-def type-id='7dffcde2' const='yes' id='b8ae588d'/>
|
||||
<pointer-type-def type-id='b8ae588d' size-in-bits='64' id='61758ee6'/>
|
||||
<pointer-type-def type-id='63a6e12c' size-in-bits='64' id='2712709a'/>
|
||||
<function-decl name='iio_channel_get' mangled-name='iio_channel_get' filepath='drivers/iio/inkern.c' line='330' 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='330' column='1'/>
|
||||
|
|
@ -30965,17 +30963,6 @@
|
|||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/mmc/host/sdhci-pltfm.c' language='LANG_C89'>
|
||||
<union-decl name='__anonymous_union__4' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='122' column='1' id='93350e5b'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='s_mem' type-id='eaa32e2f' visibility='default' filepath='include/linux/mm_types.h' line='123' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='counters' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='124' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='' type-id='545f1131' visibility='default' filepath='include/linux/mm_types.h' line='125' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<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'/>
|
||||
|
|
@ -33364,14 +33351,6 @@
|
|||
</function-type>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/net/usb/asix_common.c' language='LANG_C89'>
|
||||
<union-decl name='__anonymous_union__1' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='711' column='1' id='a6d66545'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='sk' type-id='f772df6d' visibility='default' filepath='include/linux/skbuff.h' line='712' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='ip_defrag_offset' type-id='95e97e5e' visibility='default' filepath='include/linux/skbuff.h' line='713' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<function-decl name='usbnet_write_cmd_async' mangled-name='usbnet_write_cmd_async' filepath='include/linux/usb/usbnet.h' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_write_cmd_async'>
|
||||
<parameter type-id='12884b9a'/>
|
||||
<parameter type-id='002ac4a6'/>
|
||||
|
|
@ -34939,6 +34918,14 @@
|
|||
</function-type>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/net/usb/usbnet.c' language='LANG_C89'>
|
||||
<union-decl name='__anonymous_union__2' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/skbuff.h' line='711' column='1' id='a6d66545'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='sk' type-id='f772df6d' visibility='default' filepath='include/linux/skbuff.h' line='712' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='ip_defrag_offset' type-id='95e97e5e' visibility='default' filepath='include/linux/skbuff.h' line='713' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<function-decl name='usbnet_probe' mangled-name='usbnet_probe' filepath='drivers/net/usb/usbnet.c' line='1654' 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='1654' column='1'/>
|
||||
<parameter type-id='bc57058f' name='prod' filepath='drivers/net/usb/usbnet.c' line='1654' column='1'/>
|
||||
|
|
@ -35192,12 +35179,6 @@
|
|||
<return type-id='90144368'/>
|
||||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/of/base.c' language='LANG_C89'>
|
||||
<function-decl name='of_machine_is_compatible' mangled-name='of_machine_is_compatible' filepath='drivers/of/base.c' line='605' 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='605' column='1'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/of/irq.c' language='LANG_C89'>
|
||||
<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'/>
|
||||
|
|
@ -40813,18 +40794,18 @@
|
|||
<var-decl name='additional_length' type-id='f9b06939' visibility='default' filepath='include/scsi/scsi_common.h' line='51' column='1'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<union-decl name='__anonymous_union__7' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='1136' column='1' id='d0c6e061'>
|
||||
<union-decl name='__anonymous_union__2' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='122' column='1' id='93350e5b'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='nfs_fl' type-id='17bacae5' visibility='default' filepath='include/linux/fs.h' line='1137' column='1'/>
|
||||
<var-decl name='s_mem' type-id='eaa32e2f' visibility='default' filepath='include/linux/mm_types.h' line='123' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='nfs4_fl' type-id='b811a3f5' visibility='default' filepath='include/linux/fs.h' line='1138' column='1'/>
|
||||
<var-decl name='counters' type-id='7359adad' visibility='default' filepath='include/linux/mm_types.h' line='124' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='afs' type-id='c69efd71' visibility='default' filepath='include/linux/fs.h' line='1143' column='1'/>
|
||||
<var-decl name='' type-id='545f1131' visibility='default' filepath='include/linux/mm_types.h' line='125' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__11' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='150' column='1' id='787e8237'>
|
||||
<union-decl name='__anonymous_union__3' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/mm_types.h' line='150' column='1' id='787e8237'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='pt_mm' type-id='df4b7819' visibility='default' filepath='include/linux/mm_types.h' line='151' column='1'/>
|
||||
</data-member>
|
||||
|
|
@ -40832,22 +40813,7 @@
|
|||
<var-decl name='pt_frag_refcount' type-id='49178f86' visibility='default' filepath='include/linux/mm_types.h' line='152' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__17' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/iocontext.h' line='83' column='1' id='df248743'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='q_node' type-id='72f469ec' visibility='default' filepath='include/linux/iocontext.h' line='84' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<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__18' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/iocontext.h' line='87' column='1' id='eb20ccf0'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='ioc_node' type-id='03a4a074' visibility='default' filepath='include/linux/iocontext.h' line='88' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<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__5' is-anonymous='yes' visibility='default' filepath='include/linux/blk_types.h' line='186' column='1' id='2a125a28'/>
|
||||
<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='4e8a6f86'>
|
||||
<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'/>
|
||||
|
|
@ -41016,6 +40982,22 @@
|
|||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/scsi/scsi_lib.c' language='LANG_C89'>
|
||||
<union-decl name='__anonymous_union__3' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/iocontext.h' line='83' column='1' id='df248743'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='q_node' type-id='72f469ec' visibility='default' filepath='include/linux/iocontext.h' line='84' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<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__4' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/iocontext.h' line='87' column='1' id='eb20ccf0'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='ioc_node' type-id='03a4a074' visibility='default' filepath='include/linux/iocontext.h' line='88' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='__rcu_head' type-id='e3d8ce29' visibility='default' filepath='include/linux/iocontext.h' line='89' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<qualified-type-def type-id='fe7ab803' const='yes' id='0ebf66e5'/>
|
||||
<pointer-type-def type-id='0ebf66e5' size-in-bits='64' id='064ed7dd'/>
|
||||
<function-decl name='scsi_print_command' mangled-name='scsi_print_command' filepath='include/scsi/scsi_dbg.h' line='9' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_print_command'>
|
||||
|
|
@ -41040,22 +41022,6 @@
|
|||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/scsi/scsi_logging.c' language='LANG_C89'>
|
||||
<class-decl name='Scsi_Host' is-struct='yes' visibility='default' is-declaration-only='yes' id='83cec607'/>
|
||||
<union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='160' column='1' id='2f76bc4b'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='hash' type-id='03a4a074' visibility='default' filepath='include/linux/blkdev.h' line='161' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='ipi_list' type-id='72f469ec' visibility='default' filepath='include/linux/blkdev.h' line='162' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__3' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='238' column='1' id='097c5bdb'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='csd' type-id='bb75ea85' visibility='default' filepath='include/linux/blkdev.h' line='239' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='fifo_time' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='240' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<pointer-type-def type-id='83cec607' size-in-bits='64' id='a970a64d'/>
|
||||
<function-decl name='__scsi_print_sense' mangled-name='__scsi_print_sense' filepath='drivers/scsi/scsi_logging.c' line='370' 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='370' column='1'/>
|
||||
|
|
@ -43431,14 +43397,6 @@
|
|||
</function-type>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='drivers/staging/android/ion/ion_buffer.c' language='LANG_C89'>
|
||||
<union-decl name='__anonymous_union__2' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='725' column='1' id='67f3b119'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='i_fop' type-id='61758ee5' visibility='default' filepath='include/linux/fs.h' line='726' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='free_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='727' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<function-decl name='ion_buffer_zero' mangled-name='ion_buffer_zero' filepath='drivers/staging/android/ion/ion_buffer.c' line='179' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ion_buffer_zero'>
|
||||
<parameter type-id='64915dde' name='buffer' filepath='drivers/staging/android/ion/ion_buffer.c' line='179' column='1'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
|
|
@ -55776,7 +55734,7 @@
|
|||
<var-decl name='i_readcount' type-id='49178f86' visibility='default' filepath='include/linux/fs.h' line='723' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='2944'>
|
||||
<var-decl name='' type-id='67f3b11a' visibility='default' filepath='include/linux/fs.h' line='725' column='1'/>
|
||||
<var-decl name='' type-id='67f3b119' visibility='default' filepath='include/linux/fs.h' line='725' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='3008'>
|
||||
<var-decl name='i_flctx' type-id='731257ff' visibility='default' filepath='include/linux/fs.h' line='729' column='1'/>
|
||||
|
|
@ -61848,13 +61806,13 @@
|
|||
<var-decl name='queuelist' type-id='72f469ec' visibility='default' filepath='include/linux/blkdev.h' line='151' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='704'>
|
||||
<var-decl name='' type-id='2f76bc4c' visibility='default' filepath='include/linux/blkdev.h' line='160' column='1'/>
|
||||
<var-decl name='' type-id='2f76bc4b' visibility='default' filepath='include/linux/blkdev.h' line='160' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='832'>
|
||||
<var-decl name='' type-id='df8866ae' visibility='default' filepath='include/linux/blkdev.h' line='170' column='1'/>
|
||||
<var-decl name='' type-id='df8866ad' visibility='default' filepath='include/linux/blkdev.h' line='170' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1024'>
|
||||
<var-decl name='' type-id='da6ad6a3' visibility='default' filepath='include/linux/blkdev.h' line='183' column='1'/>
|
||||
<var-decl name='' type-id='da6ad6a2' visibility='default' filepath='include/linux/blkdev.h' line='183' 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='196' column='1'/>
|
||||
|
|
@ -61896,7 +61854,7 @@
|
|||
<var-decl name='deadline' type-id='7359adad' visibility='default' filepath='include/linux/blkdev.h' line='236' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1792'>
|
||||
<var-decl name='' type-id='097c5bdc' visibility='default' filepath='include/linux/blkdev.h' line='238' column='1'/>
|
||||
<var-decl name='' type-id='097c5bdb' visibility='default' filepath='include/linux/blkdev.h' line='238' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='2048'>
|
||||
<var-decl name='end_io' type-id='5afdaa66' visibility='default' filepath='include/linux/blkdev.h' line='246' column='1'/>
|
||||
|
|
@ -65876,7 +65834,7 @@
|
|||
<var-decl name='lru' type-id='b969bd7a' visibility='default' filepath='include/linux/list_lru.h' line='37' column='1'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<class-decl name='file_operations' size-in-bits='2304' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1870' column='1' id='7dffcde2'>
|
||||
<class-decl name='file_operations' size-in-bits='2304' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1870' column='1' id='7dffcde3'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
<var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/fs.h' line='1871' column='1'/>
|
||||
</data-member>
|
||||
|
|
@ -66055,7 +66013,7 @@
|
|||
<var-decl name='fl_lmops' type-id='a548fbc8' visibility='default' filepath='include/linux/fs.h' line='1135' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1472'>
|
||||
<var-decl name='fl_u' type-id='d0c6e062' visibility='default' filepath='include/linux/fs.h' line='1144' column='1'/>
|
||||
<var-decl name='fl_u' type-id='d0c6e061' visibility='default' filepath='include/linux/fs.h' line='1144' 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='1146' column='1'/>
|
||||
|
|
@ -67520,8 +67478,8 @@
|
|||
<pointer-type-def type-id='09ffba8a' size-in-bits='64' id='5d92c9e0'/>
|
||||
<qualified-type-def type-id='1958bd2a' const='yes' id='0b88199f'/>
|
||||
<pointer-type-def type-id='0b88199f' size-in-bits='64' id='dc4077ef'/>
|
||||
<qualified-type-def type-id='7dffcde2' const='yes' id='b8ae588d'/>
|
||||
<pointer-type-def type-id='b8ae588d' size-in-bits='64' id='61758ee5'/>
|
||||
<qualified-type-def type-id='7dffcde3' const='yes' id='b8ae588e'/>
|
||||
<pointer-type-def type-id='b8ae588e' size-in-bits='64' id='61758ee5'/>
|
||||
<qualified-type-def type-id='8a2a988b' const='yes' id='dc743cb2'/>
|
||||
<pointer-type-def type-id='dc743cb2' size-in-bits='64' id='a2fb6348'/>
|
||||
<qualified-type-def type-id='fa21a7e9' const='yes' id='de5211b8'/>
|
||||
|
|
@ -69974,7 +69932,7 @@
|
|||
<parameter type-id='eaa32e2f'/>
|
||||
<return type-id='eaa32e2f'/>
|
||||
</function-type>
|
||||
<union-decl name='__anonymous_union__29' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='238' column='1' id='097c5bdc'>
|
||||
<union-decl name='__anonymous_union__29' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='238' column='1' id='097c5bdb'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='csd' type-id='bb75ea85' visibility='default' filepath='include/linux/blkdev.h' line='239' column='1'/>
|
||||
</data-member>
|
||||
|
|
@ -70004,7 +69962,7 @@
|
|||
<var-decl name='tp' type-id='08e531de' visibility='default' filepath='include/linux/trace_events.h' line='265' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__42' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='725' column='1' id='67f3b11a'>
|
||||
<union-decl name='__anonymous_union__42' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='725' column='1' id='67f3b119'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='i_fop' type-id='61758ee5' visibility='default' filepath='include/linux/fs.h' line='726' column='1'/>
|
||||
</data-member>
|
||||
|
|
@ -70039,7 +69997,7 @@
|
|||
<var-decl name='d_rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/dcache.h' line='120' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__17' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='160' column='1' id='2f76bc4c'>
|
||||
<union-decl name='__anonymous_union__17' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='160' column='1' id='2f76bc4b'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='hash' type-id='03a4a074' visibility='default' filepath='include/linux/blkdev.h' line='161' column='1'/>
|
||||
</data-member>
|
||||
|
|
@ -70114,7 +70072,7 @@
|
|||
<var-decl name='pt_frag_refcount' type-id='49178f86' visibility='default' filepath='include/linux/mm_types.h' line='152' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__44' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='1136' column='1' id='d0c6e062'>
|
||||
<union-decl name='__anonymous_union__44' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='1136' column='1' id='d0c6e061'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='nfs_fl' type-id='17bacae5' visibility='default' filepath='include/linux/fs.h' line='1137' column='1'/>
|
||||
</data-member>
|
||||
|
|
@ -70125,7 +70083,7 @@
|
|||
<var-decl name='afs' type-id='c69efd71' visibility='default' filepath='include/linux/fs.h' line='1143' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__18' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='170' column='1' id='df8866ae'>
|
||||
<union-decl name='__anonymous_union__18' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='170' column='1' id='df8866ad'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='rb_node' type-id='2a8a6332' visibility='default' filepath='include/linux/blkdev.h' line='171' column='1'/>
|
||||
</data-member>
|
||||
|
|
@ -70147,7 +70105,7 @@
|
|||
<var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/sched.h' line='1319' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__26' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='183' column='1' id='da6ad6a3'>
|
||||
<union-decl name='__anonymous_union__26' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='183' column='1' id='da6ad6a2'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='elv' type-id='a570972f' visibility='default' filepath='include/linux/blkdev.h' line='187' column='1'/>
|
||||
</data-member>
|
||||
|
|
@ -97818,6 +97776,14 @@
|
|||
<var-decl name='i_rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/fs.h' line='715' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__3' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='725' column='1' id='67f3b11a'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='i_fop' type-id='61758ee5' visibility='default' filepath='include/linux/fs.h' line='726' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='free_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='727' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__5' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/dcache.h' line='108' column='1' id='ba311a3b'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='d_lru' type-id='72f469ec' visibility='default' filepath='include/linux/dcache.h' line='109' column='1'/>
|
||||
|
|
@ -98528,6 +98494,55 @@
|
|||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr version='1.0' address-size='64' path='net/wireless/util.c' language='LANG_C89'>
|
||||
<union-decl name='__anonymous_union__23' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='160' column='1' id='2f76bc4c'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='hash' type-id='03a4a074' visibility='default' filepath='include/linux/blkdev.h' line='161' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='ipi_list' type-id='72f469ec' visibility='default' filepath='include/linux/blkdev.h' line='162' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__24' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='170' column='1' id='df8866ae'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='rb_node' type-id='2a8a6332' visibility='default' filepath='include/linux/blkdev.h' line='171' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='special_vec' type-id='40af3609' visibility='default' filepath='include/linux/blkdev.h' line='172' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='completion_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/blkdev.h' line='173' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='error_count' type-id='95e97e5e' visibility='default' filepath='include/linux/blkdev.h' line='174' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__25' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='183' column='1' id='da6ad6a3'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='elv' type-id='a570972f' visibility='default' filepath='include/linux/blkdev.h' line='187' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='flush' type-id='9e18948c' visibility='default' filepath='include/linux/blkdev.h' line='193' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__26' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/blkdev.h' line='238' column='1' id='097c5bdc'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='csd' type-id='bb75ea85' visibility='default' filepath='include/linux/blkdev.h' line='239' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='fifo_time' type-id='91ce1af9' visibility='default' filepath='include/linux/blkdev.h' line='240' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<union-decl name='__anonymous_union__30' size-in-bits='256' is-anonymous='yes' visibility='default' filepath='include/linux/fs.h' line='1136' column='1' id='d0c6e062'>
|
||||
<data-member access='private'>
|
||||
<var-decl name='nfs_fl' type-id='17bacae5' visibility='default' filepath='include/linux/fs.h' line='1137' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='nfs4_fl' type-id='b811a3f5' visibility='default' filepath='include/linux/fs.h' line='1138' column='1'/>
|
||||
</data-member>
|
||||
<data-member access='private'>
|
||||
<var-decl name='afs' type-id='c69efd71' visibility='default' filepath='include/linux/fs.h' line='1143' column='1'/>
|
||||
</data-member>
|
||||
</union-decl>
|
||||
<pointer-type-def type-id='5ece574c' size-in-bits='64' id='185e765a'/>
|
||||
<function-decl name='ieee80211_channel_to_freq_khz' mangled-name='ieee80211_channel_to_freq_khz' filepath='net/wireless/util.c' line='75' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ieee80211_channel_to_freq_khz'>
|
||||
<parameter type-id='95e97e5e' name='chan' filepath='net/wireless/util.c' line='75' column='1'/>
|
||||
|
|
|
|||
|
|
@ -985,6 +985,7 @@
|
|||
pci_bus_type
|
||||
pci_d3cold_disable
|
||||
pci_find_bus
|
||||
pci_find_ext_capability
|
||||
pci_free_irq_vectors
|
||||
pci_get_device
|
||||
pci_irq_vector
|
||||
|
|
|
|||
|
|
@ -725,6 +725,7 @@
|
|||
drm_dp_update_payload_part1
|
||||
drm_dp_update_payload_part2
|
||||
drm_edid_duplicate
|
||||
drm_edid_is_valid
|
||||
drm_encoder_cleanup
|
||||
drm_encoder_init
|
||||
drm_err
|
||||
|
|
@ -1234,6 +1235,7 @@
|
|||
keyslot_manager_set_max_dun_bytes
|
||||
keyslot_manager_reprogram_all_keys
|
||||
keyslot_manager_destroy
|
||||
bio_crypt_should_process
|
||||
__kfifo_in
|
||||
__kfifo_out
|
||||
kfree
|
||||
|
|
|
|||
|
|
@ -248,6 +248,9 @@
|
|||
idr_find
|
||||
idr_for_each
|
||||
idr_remove
|
||||
ieee80211_channel_to_freq_khz
|
||||
ieee80211_freq_khz_to_channel
|
||||
ieee80211_get_channel_khz
|
||||
ignore_console_lock_warning
|
||||
inet_proto_csum_replace4
|
||||
init_net
|
||||
|
|
@ -560,6 +563,7 @@
|
|||
single_open
|
||||
single_release
|
||||
skb_clone
|
||||
skb_copy
|
||||
skb_cow_data
|
||||
skb_ensure_writable
|
||||
skb_push
|
||||
|
|
@ -2497,3 +2501,20 @@
|
|||
trace_print_array_seq
|
||||
trace_print_flags_seq
|
||||
vmf_insert_pfn_prot
|
||||
|
||||
# required by sprd_ion.ko
|
||||
ion_buffer_zero
|
||||
__ion_device_add_heap
|
||||
memset32
|
||||
of_platform_device_create
|
||||
__sg_page_iter_next
|
||||
__sg_page_iter_start
|
||||
|
||||
# required by snd-soc-sprd-codec-sc2730.ko
|
||||
dapm_kcontrol_get_value
|
||||
__kfifo_init
|
||||
__kfifo_from_user_r
|
||||
__kfifo_to_user_r
|
||||
snd_pcm_rate_bit_to_rate
|
||||
snd_soc_bytes_info_ext
|
||||
snd_soc_new_compress
|
||||
|
|
|
|||
|
|
@ -1505,6 +1505,33 @@ config ARM64_PTR_AUTH
|
|||
|
||||
endmenu
|
||||
|
||||
menu "ARMv8.4 architectural features"
|
||||
|
||||
config ARM64_AMU_EXTN
|
||||
bool "Enable support for the Activity Monitors Unit CPU extension"
|
||||
default y
|
||||
help
|
||||
The activity monitors extension is an optional extension introduced
|
||||
by the ARMv8.4 CPU architecture. This enables support for version 1
|
||||
of the activity monitors architecture, AMUv1.
|
||||
|
||||
To enable the use of this extension on CPUs that implement it, say Y.
|
||||
|
||||
Note that for architectural reasons, firmware _must_ implement AMU
|
||||
support when running on CPUs that present the activity monitors
|
||||
extension. The required support is present in:
|
||||
* Version 1.5 and later of the ARM Trusted Firmware
|
||||
|
||||
For kernels that have this configuration enabled but boot with broken
|
||||
firmware, you may need to say N here until the firmware is fixed.
|
||||
Otherwise you may experience firmware panics or lockups when
|
||||
accessing the counter registers. Even if you are not observing these
|
||||
symptoms, the values returned by the register reads might not
|
||||
correctly reflect reality. Most commonly, the value read will be 0,
|
||||
indicating that the counter is not enabled.
|
||||
|
||||
endmenu
|
||||
|
||||
config ARM64_SVE
|
||||
bool "ARM Scalable Vector Extension support"
|
||||
default y
|
||||
|
|
|
|||
|
|
@ -443,6 +443,7 @@ CONFIG_COMMON_CLK_SCPI=y
|
|||
# CONFIG_CLK_SUNXI is not set
|
||||
# CONFIG_SUNXI_CCU is not set
|
||||
CONFIG_HWSPINLOCK=y
|
||||
CONFIG_SUN4I_TIMER=y
|
||||
# CONFIG_SUN50I_ERRATUM_UNKNOWN1 is not set
|
||||
CONFIG_MTK_TIMER=y
|
||||
CONFIG_MAILBOX=y
|
||||
|
|
|
|||
|
|
@ -463,6 +463,16 @@ USER(\label, ic ivau, \tmp2) // invalidate I line PoU
|
|||
9000:
|
||||
.endm
|
||||
|
||||
/*
|
||||
* reset_amuserenr_el0 - reset AMUSERENR_EL0 if AMUv1 present
|
||||
*/
|
||||
.macro reset_amuserenr_el0, tmpreg
|
||||
mrs \tmpreg, id_aa64pfr0_el1 // Check ID_AA64PFR0_EL1
|
||||
ubfx \tmpreg, \tmpreg, #ID_AA64PFR0_AMU_SHIFT, #4
|
||||
cbz \tmpreg, .Lskip_\@ // Skip if no AMU present
|
||||
msr_s SYS_AMUSERENR_EL0, xzr // Disable AMU access from EL0
|
||||
.Lskip_\@:
|
||||
.endm
|
||||
/*
|
||||
* copy_page - copy src to dest using temp registers t1-t8
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -55,8 +55,9 @@
|
|||
#define ARM64_WORKAROUND_CAVIUM_TX2_219_TVM 45
|
||||
#define ARM64_WORKAROUND_CAVIUM_TX2_219_PRFM 46
|
||||
#define ARM64_WORKAROUND_1542419 47
|
||||
#define ARM64_HAS_AMU_EXTN 48
|
||||
|
||||
/* kabi: reserve 48 - 62 for future cpu capabilities */
|
||||
/* kabi: reserve 49 - 62 for future cpu capabilities */
|
||||
#define ARM64_NCAPS 62
|
||||
|
||||
#endif /* __ASM_CPUCAPS_H */
|
||||
|
|
|
|||
|
|
@ -659,6 +659,12 @@ static inline u32 id_aa64mmfr0_parange_to_phys_shift(int parange)
|
|||
default: return CONFIG_ARM64_PA_BITS;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ARM64_AMU_EXTN
|
||||
/* Check whether the cpu supports the Activity Monitors Unit (AMU) */
|
||||
extern bool cpu_has_amu_feat(int cpu);
|
||||
#endif
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -268,6 +268,7 @@
|
|||
|
||||
/* Hyp Coprocessor Trap Register */
|
||||
#define CPTR_EL2_TCPAC (1 << 31)
|
||||
#define CPTR_EL2_TAM (1 << 30)
|
||||
#define CPTR_EL2_TTA (1 << 20)
|
||||
#define CPTR_EL2_TFP (1 << CPTR_EL2_TFP_SHIFT)
|
||||
#define CPTR_EL2_TZ (1 << 8)
|
||||
|
|
|
|||
|
|
@ -384,6 +384,42 @@
|
|||
#define SYS_TPIDR_EL0 sys_reg(3, 3, 13, 0, 2)
|
||||
#define SYS_TPIDRRO_EL0 sys_reg(3, 3, 13, 0, 3)
|
||||
|
||||
/* Definitions for system register interface to AMU for ARMv8.4 onwards */
|
||||
#define SYS_AM_EL0(crm, op2) sys_reg(3, 3, 13, (crm), (op2))
|
||||
#define SYS_AMCR_EL0 SYS_AM_EL0(2, 0)
|
||||
#define SYS_AMCFGR_EL0 SYS_AM_EL0(2, 1)
|
||||
#define SYS_AMCGCR_EL0 SYS_AM_EL0(2, 2)
|
||||
#define SYS_AMUSERENR_EL0 SYS_AM_EL0(2, 3)
|
||||
#define SYS_AMCNTENCLR0_EL0 SYS_AM_EL0(2, 4)
|
||||
#define SYS_AMCNTENSET0_EL0 SYS_AM_EL0(2, 5)
|
||||
#define SYS_AMCNTENCLR1_EL0 SYS_AM_EL0(3, 0)
|
||||
#define SYS_AMCNTENSET1_EL0 SYS_AM_EL0(3, 1)
|
||||
|
||||
/*
|
||||
* Group 0 of activity monitors (architected):
|
||||
* op0 op1 CRn CRm op2
|
||||
* Counter: 11 011 1101 010:n<3> n<2:0>
|
||||
* Type: 11 011 1101 011:n<3> n<2:0>
|
||||
* n: 0-15
|
||||
*
|
||||
* Group 1 of activity monitors (auxiliary):
|
||||
* op0 op1 CRn CRm op2
|
||||
* Counter: 11 011 1101 110:n<3> n<2:0>
|
||||
* Type: 11 011 1101 111:n<3> n<2:0>
|
||||
* n: 0-15
|
||||
*/
|
||||
|
||||
#define SYS_AMEVCNTR0_EL0(n) SYS_AM_EL0(4 + ((n) >> 3), (n) & 7)
|
||||
#define SYS_AMEVTYPE0_EL0(n) SYS_AM_EL0(6 + ((n) >> 3), (n) & 7)
|
||||
#define SYS_AMEVCNTR1_EL0(n) SYS_AM_EL0(12 + ((n) >> 3), (n) & 7)
|
||||
#define SYS_AMEVTYPE1_EL0(n) SYS_AM_EL0(14 + ((n) >> 3), (n) & 7)
|
||||
|
||||
/* AMU v1: Fixed (architecturally defined) activity monitors */
|
||||
#define SYS_AMEVCNTR0_CORE_EL0 SYS_AMEVCNTR0_EL0(0)
|
||||
#define SYS_AMEVCNTR0_CONST_EL0 SYS_AMEVCNTR0_EL0(1)
|
||||
#define SYS_AMEVCNTR0_INST_RET_EL0 SYS_AMEVCNTR0_EL0(2)
|
||||
#define SYS_AMEVCNTR0_MEM_STALL SYS_AMEVCNTR0_EL0(3)
|
||||
|
||||
#define SYS_CNTFRQ_EL0 sys_reg(3, 3, 14, 0, 0)
|
||||
|
||||
#define SYS_CNTP_TVAL_EL0 sys_reg(3, 3, 14, 2, 0)
|
||||
|
|
@ -579,6 +615,7 @@
|
|||
#define ID_AA64PFR0_CSV3_SHIFT 60
|
||||
#define ID_AA64PFR0_CSV2_SHIFT 56
|
||||
#define ID_AA64PFR0_DIT_SHIFT 48
|
||||
#define ID_AA64PFR0_AMU_SHIFT 44
|
||||
#define ID_AA64PFR0_SVE_SHIFT 32
|
||||
#define ID_AA64PFR0_RAS_SHIFT 28
|
||||
#define ID_AA64PFR0_GIC_SHIFT 24
|
||||
|
|
@ -589,6 +626,7 @@
|
|||
#define ID_AA64PFR0_EL1_SHIFT 4
|
||||
#define ID_AA64PFR0_EL0_SHIFT 0
|
||||
|
||||
#define ID_AA64PFR0_AMU 0x1
|
||||
#define ID_AA64PFR0_SVE 0x1
|
||||
#define ID_AA64PFR0_RAS_V1 0x1
|
||||
#define ID_AA64PFR0_FP_NI 0xf
|
||||
|
|
|
|||
|
|
@ -154,6 +154,7 @@ static const struct arm64_ftr_bits ftr_id_aa64pfr0[] = {
|
|||
ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_CSV3_SHIFT, 4, 0),
|
||||
ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_CSV2_SHIFT, 4, 0),
|
||||
ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_DIT_SHIFT, 4, 0),
|
||||
ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_AMU_SHIFT, 4, 0),
|
||||
ARM64_FTR_BITS(FTR_VISIBLE_IF_IS_ENABLED(CONFIG_ARM64_SVE),
|
||||
FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_SVE_SHIFT, 4, 0),
|
||||
ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_RAS_SHIFT, 4, 0),
|
||||
|
|
@ -1147,6 +1148,53 @@ static bool has_hw_dbm(const struct arm64_cpu_capabilities *cap,
|
|||
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARM64_AMU_EXTN
|
||||
|
||||
/*
|
||||
* The "amu_cpus" cpumask only signals that the CPU implementation for the
|
||||
* flagged CPUs supports the Activity Monitors Unit (AMU) but does not provide
|
||||
* information regarding all the events that it supports. When a CPU bit is
|
||||
* set in the cpumask, the user of this feature can only rely on the presence
|
||||
* of the 4 fixed counters for that CPU. But this does not guarantee that the
|
||||
* counters are enabled or access to these counters is enabled by code
|
||||
* executed at higher exception levels (firmware).
|
||||
*/
|
||||
static struct cpumask amu_cpus __read_mostly;
|
||||
|
||||
bool cpu_has_amu_feat(int cpu)
|
||||
{
|
||||
return cpumask_test_cpu(cpu, &amu_cpus);
|
||||
}
|
||||
|
||||
static void cpu_amu_enable(struct arm64_cpu_capabilities const *cap)
|
||||
{
|
||||
if (has_cpuid_feature(cap, SCOPE_LOCAL_CPU)) {
|
||||
pr_info("detected CPU%d: Activity Monitors Unit (AMU)\n",
|
||||
smp_processor_id());
|
||||
cpumask_set_cpu(smp_processor_id(), &amu_cpus);
|
||||
}
|
||||
}
|
||||
|
||||
static bool has_amu(const struct arm64_cpu_capabilities *cap,
|
||||
int __unused)
|
||||
{
|
||||
/*
|
||||
* The AMU extension is a non-conflicting feature: the kernel can
|
||||
* safely run a mix of CPUs with and without support for the
|
||||
* activity monitors extension. Therefore, unconditionally enable
|
||||
* the capability to allow any late CPU to use the feature.
|
||||
*
|
||||
* With this feature unconditionally enabled, the cpu_enable
|
||||
* function will be called for all CPUs that match the criteria,
|
||||
* including secondary and hotplugged, marking this feature as
|
||||
* present on that respective CPU. The enable function will also
|
||||
* print a detection message.
|
||||
*/
|
||||
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARM64_VHE
|
||||
static bool runs_at_el2(const struct arm64_cpu_capabilities *entry, int __unused)
|
||||
{
|
||||
|
|
@ -1416,6 +1464,24 @@ static const struct arm64_cpu_capabilities arm64_features[] = {
|
|||
.cpu_enable = cpu_clear_disr,
|
||||
},
|
||||
#endif /* CONFIG_ARM64_RAS_EXTN */
|
||||
#ifdef CONFIG_ARM64_AMU_EXTN
|
||||
{
|
||||
/*
|
||||
* The feature is enabled by default if CONFIG_ARM64_AMU_EXTN=y.
|
||||
* Therefore, don't provide .desc as we don't want the detection
|
||||
* message to be shown until at least one CPU is detected to
|
||||
* support the feature.
|
||||
*/
|
||||
.capability = ARM64_HAS_AMU_EXTN,
|
||||
.type = ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE,
|
||||
.matches = has_amu,
|
||||
.sys_reg = SYS_ID_AA64PFR0_EL1,
|
||||
.sign = FTR_UNSIGNED,
|
||||
.field_pos = ID_AA64PFR0_AMU_SHIFT,
|
||||
.min_field_value = ID_AA64PFR0_AMU,
|
||||
.cpu_enable = cpu_amu_enable,
|
||||
},
|
||||
#endif /* CONFIG_ARM64_AMU_EXTN */
|
||||
{
|
||||
.desc = "Data cache clean to the PoU not required for I/D coherence",
|
||||
.capability = ARM64_HAS_CACHE_IDC,
|
||||
|
|
|
|||
|
|
@ -98,6 +98,18 @@ static void activate_traps_vhe(struct kvm_vcpu *vcpu)
|
|||
val = read_sysreg(cpacr_el1);
|
||||
val |= CPACR_EL1_TTA;
|
||||
val &= ~CPACR_EL1_ZEN;
|
||||
|
||||
/*
|
||||
* With VHE (HCR.E2H == 1), accesses to CPACR_EL1 are routed to
|
||||
* CPTR_EL2. In general, CPACR_EL1 has the same layout as CPTR_EL2,
|
||||
* except for some missing controls, such as TAM.
|
||||
* In this case, CPTR_EL2.TAM has the same position with or without
|
||||
* VHE (HCR.E2H == 1) which allows us to use here the CPTR_EL2.TAM
|
||||
* shift value for trapping the AMU accesses.
|
||||
*/
|
||||
|
||||
val |= CPTR_EL2_TAM;
|
||||
|
||||
if (update_fp_enabled(vcpu)) {
|
||||
if (vcpu_has_sve(vcpu))
|
||||
val |= CPACR_EL1_ZEN;
|
||||
|
|
@ -119,7 +131,7 @@ static void __hyp_text __activate_traps_nvhe(struct kvm_vcpu *vcpu)
|
|||
__activate_traps_common(vcpu);
|
||||
|
||||
val = CPTR_EL2_DEFAULT;
|
||||
val |= CPTR_EL2_TTA | CPTR_EL2_TZ;
|
||||
val |= CPTR_EL2_TTA | CPTR_EL2_TZ | CPTR_EL2_TAM;
|
||||
if (!update_fp_enabled(vcpu)) {
|
||||
val |= CPTR_EL2_TFP;
|
||||
__activate_traps_fpsimd32(vcpu);
|
||||
|
|
|
|||
|
|
@ -1003,6 +1003,20 @@ static bool access_pmuserenr(struct kvm_vcpu *vcpu, struct sys_reg_params *p,
|
|||
{ SYS_DESC(SYS_PMEVTYPERn_EL0(n)), \
|
||||
access_pmu_evtyper, reset_unknown, (PMEVTYPER0_EL0 + n), }
|
||||
|
||||
static bool access_amu(struct kvm_vcpu *vcpu, struct sys_reg_params *p,
|
||||
const struct sys_reg_desc *r)
|
||||
{
|
||||
kvm_inject_undefined(vcpu);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Macro to expand the AMU counter and type registers*/
|
||||
#define AMU_AMEVCNTR0_EL0(n) { SYS_DESC(SYS_AMEVCNTR0_EL0(n)), access_amu }
|
||||
#define AMU_AMEVTYPE0_EL0(n) { SYS_DESC(SYS_AMEVTYPE0_EL0(n)), access_amu }
|
||||
#define AMU_AMEVCNTR1_EL0(n) { SYS_DESC(SYS_AMEVCNTR1_EL0(n)), access_amu }
|
||||
#define AMU_AMEVTYPE1_EL0(n) { SYS_DESC(SYS_AMEVTYPE1_EL0(n)), access_amu }
|
||||
|
||||
static bool trap_ptrauth(struct kvm_vcpu *vcpu,
|
||||
struct sys_reg_params *p,
|
||||
const struct sys_reg_desc *rd)
|
||||
|
|
@ -1078,8 +1092,10 @@ static u64 read_id_reg(const struct kvm_vcpu *vcpu,
|
|||
(u32)r->CRn, (u32)r->CRm, (u32)r->Op2);
|
||||
u64 val = raz ? 0 : read_sanitised_ftr_reg(id);
|
||||
|
||||
if (id == SYS_ID_AA64PFR0_EL1 && !vcpu_has_sve(vcpu)) {
|
||||
val &= ~(0xfUL << ID_AA64PFR0_SVE_SHIFT);
|
||||
if (id == SYS_ID_AA64PFR0_EL1) {
|
||||
if (!vcpu_has_sve(vcpu))
|
||||
val &= ~(0xfUL << ID_AA64PFR0_SVE_SHIFT);
|
||||
val &= ~(0xfUL << ID_AA64PFR0_AMU_SHIFT);
|
||||
} else if (id == SYS_ID_AA64ISAR1_EL1 && !vcpu_has_ptrauth(vcpu)) {
|
||||
val &= ~((0xfUL << ID_AA64ISAR1_APA_SHIFT) |
|
||||
(0xfUL << ID_AA64ISAR1_API_SHIFT) |
|
||||
|
|
@ -1571,6 +1587,79 @@ static const struct sys_reg_desc sys_reg_descs[] = {
|
|||
{ SYS_DESC(SYS_TPIDR_EL0), NULL, reset_unknown, TPIDR_EL0 },
|
||||
{ SYS_DESC(SYS_TPIDRRO_EL0), NULL, reset_unknown, TPIDRRO_EL0 },
|
||||
|
||||
{ SYS_DESC(SYS_AMCR_EL0), access_amu },
|
||||
{ SYS_DESC(SYS_AMCFGR_EL0), access_amu },
|
||||
{ SYS_DESC(SYS_AMCGCR_EL0), access_amu },
|
||||
{ SYS_DESC(SYS_AMUSERENR_EL0), access_amu },
|
||||
{ SYS_DESC(SYS_AMCNTENCLR0_EL0), access_amu },
|
||||
{ SYS_DESC(SYS_AMCNTENSET0_EL0), access_amu },
|
||||
{ SYS_DESC(SYS_AMCNTENCLR1_EL0), access_amu },
|
||||
{ SYS_DESC(SYS_AMCNTENSET1_EL0), access_amu },
|
||||
AMU_AMEVCNTR0_EL0(0),
|
||||
AMU_AMEVCNTR0_EL0(1),
|
||||
AMU_AMEVCNTR0_EL0(2),
|
||||
AMU_AMEVCNTR0_EL0(3),
|
||||
AMU_AMEVCNTR0_EL0(4),
|
||||
AMU_AMEVCNTR0_EL0(5),
|
||||
AMU_AMEVCNTR0_EL0(6),
|
||||
AMU_AMEVCNTR0_EL0(7),
|
||||
AMU_AMEVCNTR0_EL0(8),
|
||||
AMU_AMEVCNTR0_EL0(9),
|
||||
AMU_AMEVCNTR0_EL0(10),
|
||||
AMU_AMEVCNTR0_EL0(11),
|
||||
AMU_AMEVCNTR0_EL0(12),
|
||||
AMU_AMEVCNTR0_EL0(13),
|
||||
AMU_AMEVCNTR0_EL0(14),
|
||||
AMU_AMEVCNTR0_EL0(15),
|
||||
AMU_AMEVTYPE0_EL0(0),
|
||||
AMU_AMEVTYPE0_EL0(1),
|
||||
AMU_AMEVTYPE0_EL0(2),
|
||||
AMU_AMEVTYPE0_EL0(3),
|
||||
AMU_AMEVTYPE0_EL0(4),
|
||||
AMU_AMEVTYPE0_EL0(5),
|
||||
AMU_AMEVTYPE0_EL0(6),
|
||||
AMU_AMEVTYPE0_EL0(7),
|
||||
AMU_AMEVTYPE0_EL0(8),
|
||||
AMU_AMEVTYPE0_EL0(9),
|
||||
AMU_AMEVTYPE0_EL0(10),
|
||||
AMU_AMEVTYPE0_EL0(11),
|
||||
AMU_AMEVTYPE0_EL0(12),
|
||||
AMU_AMEVTYPE0_EL0(13),
|
||||
AMU_AMEVTYPE0_EL0(14),
|
||||
AMU_AMEVTYPE0_EL0(15),
|
||||
AMU_AMEVCNTR1_EL0(0),
|
||||
AMU_AMEVCNTR1_EL0(1),
|
||||
AMU_AMEVCNTR1_EL0(2),
|
||||
AMU_AMEVCNTR1_EL0(3),
|
||||
AMU_AMEVCNTR1_EL0(4),
|
||||
AMU_AMEVCNTR1_EL0(5),
|
||||
AMU_AMEVCNTR1_EL0(6),
|
||||
AMU_AMEVCNTR1_EL0(7),
|
||||
AMU_AMEVCNTR1_EL0(8),
|
||||
AMU_AMEVCNTR1_EL0(9),
|
||||
AMU_AMEVCNTR1_EL0(10),
|
||||
AMU_AMEVCNTR1_EL0(11),
|
||||
AMU_AMEVCNTR1_EL0(12),
|
||||
AMU_AMEVCNTR1_EL0(13),
|
||||
AMU_AMEVCNTR1_EL0(14),
|
||||
AMU_AMEVCNTR1_EL0(15),
|
||||
AMU_AMEVTYPE1_EL0(0),
|
||||
AMU_AMEVTYPE1_EL0(1),
|
||||
AMU_AMEVTYPE1_EL0(2),
|
||||
AMU_AMEVTYPE1_EL0(3),
|
||||
AMU_AMEVTYPE1_EL0(4),
|
||||
AMU_AMEVTYPE1_EL0(5),
|
||||
AMU_AMEVTYPE1_EL0(6),
|
||||
AMU_AMEVTYPE1_EL0(7),
|
||||
AMU_AMEVTYPE1_EL0(8),
|
||||
AMU_AMEVTYPE1_EL0(9),
|
||||
AMU_AMEVTYPE1_EL0(10),
|
||||
AMU_AMEVTYPE1_EL0(11),
|
||||
AMU_AMEVTYPE1_EL0(12),
|
||||
AMU_AMEVTYPE1_EL0(13),
|
||||
AMU_AMEVTYPE1_EL0(14),
|
||||
AMU_AMEVTYPE1_EL0(15),
|
||||
|
||||
{ SYS_DESC(SYS_CNTP_TVAL_EL0), access_arch_timer },
|
||||
{ SYS_DESC(SYS_CNTP_CTL_EL0), access_arch_timer },
|
||||
{ SYS_DESC(SYS_CNTP_CVAL_EL0), access_arch_timer },
|
||||
|
|
|
|||
|
|
@ -184,6 +184,7 @@ alternative_endif
|
|||
ubfx x11, x11, #1, #1
|
||||
msr oslar_el1, x11
|
||||
reset_pmuserenr_el0 x0 // Disable PMU access from EL0
|
||||
reset_amuserenr_el0 x0 // Disable AMU access from EL0
|
||||
|
||||
alternative_if ARM64_HAS_RAS_EXTN
|
||||
msr_s SYS_DISR_EL1, xzr
|
||||
|
|
@ -476,6 +477,8 @@ ENTRY(__cpu_setup)
|
|||
isb // Unmask debug exceptions now,
|
||||
enable_dbg // since this is per-cpu
|
||||
reset_pmuserenr_el0 x0 // Disable PMU access from EL0
|
||||
reset_amuserenr_el0 x0 // Disable AMU access from EL0
|
||||
|
||||
/*
|
||||
* Memory region attributes for LPAE:
|
||||
*
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ config RDA_TIMER
|
|||
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
|
||||
|
|
|
|||
|
|
@ -372,7 +372,7 @@ static int uid_cputime_show(struct seq_file *m, void *v)
|
|||
u64 total_stime = uid_entry->stime +
|
||||
uid_entry->active_stime;
|
||||
seq_printf(m, "%d: %llu %llu\n", uid_entry->uid,
|
||||
ktime_to_ms(total_utime), ktime_to_ms(total_stime));
|
||||
ktime_to_us(total_utime), ktime_to_us(total_stime));
|
||||
}
|
||||
|
||||
rt_mutex_unlock(&uid_lock);
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
* Copyright (c) 2008, Jouni Malinen <j@w1.fi>
|
||||
* Copyright (c) 2011, Javier Lopez <jlopex@gmail.com>
|
||||
* Copyright (c) 2016 - 2017 Intel Deutschland GmbH
|
||||
* Copyright (C) 2018 Intel Corporation
|
||||
* Copyright (C) 2018 - 2020 Intel Corporation
|
||||
*/
|
||||
|
||||
/*
|
||||
|
|
@ -33,6 +33,9 @@
|
|||
#include <net/netns/generic.h>
|
||||
#include <linux/rhashtable.h>
|
||||
#include <linux/nospec.h>
|
||||
#include <linux/virtio.h>
|
||||
#include <linux/virtio_ids.h>
|
||||
#include <linux/virtio_config.h>
|
||||
#include "mac80211_hwsim.h"
|
||||
|
||||
#define WARN_QUEUE 100
|
||||
|
|
@ -599,14 +602,14 @@ static const struct genl_multicast_group hwsim_mcgrps[] = {
|
|||
/* MAC80211_HWSIM netlink policy */
|
||||
|
||||
static const struct nla_policy hwsim_genl_policy[HWSIM_ATTR_MAX + 1] = {
|
||||
[HWSIM_ATTR_ADDR_RECEIVER] = { .type = NLA_UNSPEC, .len = ETH_ALEN },
|
||||
[HWSIM_ATTR_ADDR_TRANSMITTER] = { .type = NLA_UNSPEC, .len = ETH_ALEN },
|
||||
[HWSIM_ATTR_ADDR_RECEIVER] = NLA_POLICY_ETH_ADDR_COMPAT,
|
||||
[HWSIM_ATTR_ADDR_TRANSMITTER] = NLA_POLICY_ETH_ADDR_COMPAT,
|
||||
[HWSIM_ATTR_FRAME] = { .type = NLA_BINARY,
|
||||
.len = IEEE80211_MAX_DATA_LEN },
|
||||
[HWSIM_ATTR_FLAGS] = { .type = NLA_U32 },
|
||||
[HWSIM_ATTR_RX_RATE] = { .type = NLA_U32 },
|
||||
[HWSIM_ATTR_SIGNAL] = { .type = NLA_U32 },
|
||||
[HWSIM_ATTR_TX_INFO] = { .type = NLA_UNSPEC,
|
||||
[HWSIM_ATTR_TX_INFO] = { .type = NLA_BINARY,
|
||||
.len = IEEE80211_TX_MAX_RATES *
|
||||
sizeof(struct hwsim_tx_rate)},
|
||||
[HWSIM_ATTR_COOKIE] = { .type = NLA_U64 },
|
||||
|
|
@ -616,15 +619,61 @@ static const struct nla_policy hwsim_genl_policy[HWSIM_ATTR_MAX + 1] = {
|
|||
[HWSIM_ATTR_REG_CUSTOM_REG] = { .type = NLA_U32 },
|
||||
[HWSIM_ATTR_REG_STRICT_REG] = { .type = NLA_FLAG },
|
||||
[HWSIM_ATTR_SUPPORT_P2P_DEVICE] = { .type = NLA_FLAG },
|
||||
[HWSIM_ATTR_USE_CHANCTX] = { .type = NLA_FLAG },
|
||||
[HWSIM_ATTR_DESTROY_RADIO_ON_CLOSE] = { .type = NLA_FLAG },
|
||||
[HWSIM_ATTR_RADIO_NAME] = { .type = NLA_STRING },
|
||||
[HWSIM_ATTR_NO_VIF] = { .type = NLA_FLAG },
|
||||
[HWSIM_ATTR_FREQ] = { .type = NLA_U32 },
|
||||
[HWSIM_ATTR_PERM_ADDR] = { .type = NLA_UNSPEC, .len = ETH_ALEN },
|
||||
[HWSIM_ATTR_TX_INFO_FLAGS] = { .type = NLA_BINARY },
|
||||
[HWSIM_ATTR_PERM_ADDR] = NLA_POLICY_ETH_ADDR_COMPAT,
|
||||
[HWSIM_ATTR_IFTYPE_SUPPORT] = { .type = NLA_U32 },
|
||||
[HWSIM_ATTR_CIPHER_SUPPORT] = { .type = NLA_BINARY },
|
||||
};
|
||||
|
||||
#if IS_REACHABLE(CONFIG_VIRTIO)
|
||||
|
||||
/* MAC80211_HWSIM virtio queues */
|
||||
static struct virtqueue *hwsim_vqs[HWSIM_NUM_VQS];
|
||||
static bool hwsim_virtio_enabled;
|
||||
static spinlock_t hwsim_virtio_lock;
|
||||
|
||||
static void hwsim_virtio_rx_work(struct work_struct *work);
|
||||
static DECLARE_WORK(hwsim_virtio_rx, hwsim_virtio_rx_work);
|
||||
|
||||
static int hwsim_tx_virtio(struct mac80211_hwsim_data *data,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct scatterlist sg[1];
|
||||
unsigned long flags;
|
||||
int err;
|
||||
|
||||
spin_lock_irqsave(&hwsim_virtio_lock, flags);
|
||||
if (!hwsim_virtio_enabled) {
|
||||
err = -ENODEV;
|
||||
goto out_free;
|
||||
}
|
||||
|
||||
sg_init_one(sg, skb->head, skb_end_offset(skb));
|
||||
err = virtqueue_add_outbuf(hwsim_vqs[HWSIM_VQ_TX], sg, 1, skb,
|
||||
GFP_ATOMIC);
|
||||
if (err)
|
||||
goto out_free;
|
||||
virtqueue_kick(hwsim_vqs[HWSIM_VQ_TX]);
|
||||
spin_unlock_irqrestore(&hwsim_virtio_lock, flags);
|
||||
return 0;
|
||||
|
||||
out_free:
|
||||
spin_unlock_irqrestore(&hwsim_virtio_lock, flags);
|
||||
nlmsg_free(skb);
|
||||
return err;
|
||||
}
|
||||
#else
|
||||
/* cause a linker error if this ends up being needed */
|
||||
extern int hwsim_tx_virtio(struct mac80211_hwsim_data *data,
|
||||
struct sk_buff *skb);
|
||||
#define hwsim_virtio_enabled false
|
||||
#endif
|
||||
|
||||
static void mac80211_hwsim_tx_frame(struct ieee80211_hw *hw,
|
||||
struct sk_buff *skb,
|
||||
struct ieee80211_channel *chan);
|
||||
|
|
@ -1124,8 +1173,14 @@ static void mac80211_hwsim_tx_frame_nl(struct ieee80211_hw *hw,
|
|||
goto nla_put_failure;
|
||||
|
||||
genlmsg_end(skb, msg_head);
|
||||
if (hwsim_unicast_netgroup(data, skb, dst_portid))
|
||||
goto err_free_txskb;
|
||||
|
||||
if (hwsim_virtio_enabled) {
|
||||
if (hwsim_tx_virtio(data, skb))
|
||||
goto err_free_txskb;
|
||||
} else {
|
||||
if (hwsim_unicast_netgroup(data, skb, dst_portid))
|
||||
goto err_free_txskb;
|
||||
}
|
||||
|
||||
/* Enqueue the packet */
|
||||
skb_queue_tail(&data->pending, my_skb);
|
||||
|
|
@ -1427,7 +1482,7 @@ static void mac80211_hwsim_tx(struct ieee80211_hw *hw,
|
|||
/* wmediumd mode check */
|
||||
_portid = READ_ONCE(data->wmediumd);
|
||||
|
||||
if (_portid)
|
||||
if (_portid || hwsim_virtio_enabled)
|
||||
return mac80211_hwsim_tx_frame_nl(hw, skb, _portid);
|
||||
|
||||
/* NO wmediumd detected, perfect medium simulation */
|
||||
|
|
@ -1533,7 +1588,7 @@ static void mac80211_hwsim_tx_frame(struct ieee80211_hw *hw,
|
|||
|
||||
mac80211_hwsim_monitor_rx(hw, skb, chan);
|
||||
|
||||
if (_pid)
|
||||
if (_pid || hwsim_virtio_enabled)
|
||||
return mac80211_hwsim_tx_frame_nl(hw, skb, _pid);
|
||||
|
||||
mac80211_hwsim_tx_frame_no_nl(hw, skb, chan);
|
||||
|
|
@ -3266,11 +3321,14 @@ static int hwsim_tx_info_frame_received_nl(struct sk_buff *skb_2,
|
|||
if (!data2)
|
||||
goto out;
|
||||
|
||||
if (hwsim_net_get_netgroup(genl_info_net(info)) != data2->netgroup)
|
||||
goto out;
|
||||
if (!hwsim_virtio_enabled) {
|
||||
if (hwsim_net_get_netgroup(genl_info_net(info)) !=
|
||||
data2->netgroup)
|
||||
goto out;
|
||||
|
||||
if (info->snd_portid != data2->wmediumd)
|
||||
goto out;
|
||||
if (info->snd_portid != data2->wmediumd)
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* look for the skb matching the cookie passed back from user */
|
||||
skb_queue_walk_safe(&data2->pending, skb, tmp) {
|
||||
|
|
@ -3360,11 +3418,14 @@ static int hwsim_cloned_frame_received_nl(struct sk_buff *skb_2,
|
|||
if (!data2)
|
||||
goto out;
|
||||
|
||||
if (hwsim_net_get_netgroup(genl_info_net(info)) != data2->netgroup)
|
||||
goto out;
|
||||
if (!hwsim_virtio_enabled) {
|
||||
if (hwsim_net_get_netgroup(genl_info_net(info)) !=
|
||||
data2->netgroup)
|
||||
goto out;
|
||||
|
||||
if (info->snd_portid != data2->wmediumd)
|
||||
goto out;
|
||||
if (info->snd_portid != data2->wmediumd)
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* check if radio is configured properly */
|
||||
|
||||
|
|
@ -3905,6 +3966,229 @@ static void hwsim_exit_netlink(void)
|
|||
genl_unregister_family(&hwsim_genl_family);
|
||||
}
|
||||
|
||||
#if IS_REACHABLE(CONFIG_VIRTIO)
|
||||
static void hwsim_virtio_tx_done(struct virtqueue *vq)
|
||||
{
|
||||
unsigned int len;
|
||||
struct sk_buff *skb;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&hwsim_virtio_lock, flags);
|
||||
while ((skb = virtqueue_get_buf(vq, &len)))
|
||||
nlmsg_free(skb);
|
||||
spin_unlock_irqrestore(&hwsim_virtio_lock, flags);
|
||||
}
|
||||
|
||||
static int hwsim_virtio_handle_cmd(struct sk_buff *skb)
|
||||
{
|
||||
struct nlmsghdr *nlh;
|
||||
struct genlmsghdr *gnlh;
|
||||
struct nlattr *tb[HWSIM_ATTR_MAX + 1];
|
||||
struct genl_info info = {};
|
||||
int err;
|
||||
|
||||
nlh = nlmsg_hdr(skb);
|
||||
gnlh = nlmsg_data(nlh);
|
||||
err = genlmsg_parse(nlh, &hwsim_genl_family, tb, HWSIM_ATTR_MAX,
|
||||
hwsim_genl_policy, NULL);
|
||||
if (err) {
|
||||
pr_err_ratelimited("hwsim: genlmsg_parse returned %d\n", err);
|
||||
return err;
|
||||
}
|
||||
|
||||
info.attrs = tb;
|
||||
|
||||
switch (gnlh->cmd) {
|
||||
case HWSIM_CMD_FRAME:
|
||||
hwsim_cloned_frame_received_nl(skb, &info);
|
||||
break;
|
||||
case HWSIM_CMD_TX_INFO_FRAME:
|
||||
hwsim_tx_info_frame_received_nl(skb, &info);
|
||||
break;
|
||||
default:
|
||||
pr_err_ratelimited("hwsim: invalid cmd: %d\n", gnlh->cmd);
|
||||
return -EPROTO;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void hwsim_virtio_rx_work(struct work_struct *work)
|
||||
{
|
||||
struct virtqueue *vq;
|
||||
unsigned int len;
|
||||
struct sk_buff *skb;
|
||||
struct scatterlist sg[1];
|
||||
int err;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&hwsim_virtio_lock, flags);
|
||||
if (!hwsim_virtio_enabled)
|
||||
goto out_unlock;
|
||||
|
||||
skb = virtqueue_get_buf(hwsim_vqs[HWSIM_VQ_RX], &len);
|
||||
if (!skb)
|
||||
goto out_unlock;
|
||||
spin_unlock_irqrestore(&hwsim_virtio_lock, flags);
|
||||
|
||||
skb->data = skb->head;
|
||||
skb_set_tail_pointer(skb, len);
|
||||
hwsim_virtio_handle_cmd(skb);
|
||||
|
||||
spin_lock_irqsave(&hwsim_virtio_lock, flags);
|
||||
if (!hwsim_virtio_enabled) {
|
||||
nlmsg_free(skb);
|
||||
goto out_unlock;
|
||||
}
|
||||
vq = hwsim_vqs[HWSIM_VQ_RX];
|
||||
sg_init_one(sg, skb->head, skb_end_offset(skb));
|
||||
err = virtqueue_add_inbuf(vq, sg, 1, skb, GFP_KERNEL);
|
||||
if (WARN(err, "virtqueue_add_inbuf returned %d\n", err))
|
||||
nlmsg_free(skb);
|
||||
else
|
||||
virtqueue_kick(vq);
|
||||
schedule_work(&hwsim_virtio_rx);
|
||||
|
||||
out_unlock:
|
||||
spin_unlock_irqrestore(&hwsim_virtio_lock, flags);
|
||||
}
|
||||
|
||||
static void hwsim_virtio_rx_done(struct virtqueue *vq)
|
||||
{
|
||||
schedule_work(&hwsim_virtio_rx);
|
||||
}
|
||||
|
||||
static int init_vqs(struct virtio_device *vdev)
|
||||
{
|
||||
vq_callback_t *callbacks[HWSIM_NUM_VQS] = {
|
||||
[HWSIM_VQ_TX] = hwsim_virtio_tx_done,
|
||||
[HWSIM_VQ_RX] = hwsim_virtio_rx_done,
|
||||
};
|
||||
const char *names[HWSIM_NUM_VQS] = {
|
||||
[HWSIM_VQ_TX] = "tx",
|
||||
[HWSIM_VQ_RX] = "rx",
|
||||
};
|
||||
|
||||
return virtio_find_vqs(vdev, HWSIM_NUM_VQS,
|
||||
hwsim_vqs, callbacks, names, NULL);
|
||||
}
|
||||
|
||||
static int fill_vq(struct virtqueue *vq)
|
||||
{
|
||||
int i, err;
|
||||
struct sk_buff *skb;
|
||||
struct scatterlist sg[1];
|
||||
|
||||
for (i = 0; i < virtqueue_get_vring_size(vq); i++) {
|
||||
skb = genlmsg_new(GENLMSG_DEFAULT_SIZE, GFP_KERNEL);
|
||||
if (!skb)
|
||||
return -ENOMEM;
|
||||
|
||||
sg_init_one(sg, skb->head, skb_end_offset(skb));
|
||||
err = virtqueue_add_inbuf(vq, sg, 1, skb, GFP_KERNEL);
|
||||
if (err) {
|
||||
nlmsg_free(skb);
|
||||
return err;
|
||||
}
|
||||
}
|
||||
virtqueue_kick(vq);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void remove_vqs(struct virtio_device *vdev)
|
||||
{
|
||||
int i;
|
||||
|
||||
vdev->config->reset(vdev);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(hwsim_vqs); i++) {
|
||||
struct virtqueue *vq = hwsim_vqs[i];
|
||||
struct sk_buff *skb;
|
||||
|
||||
while ((skb = virtqueue_detach_unused_buf(vq)))
|
||||
nlmsg_free(skb);
|
||||
}
|
||||
|
||||
vdev->config->del_vqs(vdev);
|
||||
}
|
||||
|
||||
static int hwsim_virtio_probe(struct virtio_device *vdev)
|
||||
{
|
||||
int err;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&hwsim_virtio_lock, flags);
|
||||
if (hwsim_virtio_enabled) {
|
||||
spin_unlock_irqrestore(&hwsim_virtio_lock, flags);
|
||||
return -EEXIST;
|
||||
}
|
||||
spin_unlock_irqrestore(&hwsim_virtio_lock, flags);
|
||||
|
||||
err = init_vqs(vdev);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = fill_vq(hwsim_vqs[HWSIM_VQ_RX]);
|
||||
if (err)
|
||||
goto out_remove;
|
||||
|
||||
spin_lock_irqsave(&hwsim_virtio_lock, flags);
|
||||
hwsim_virtio_enabled = true;
|
||||
spin_unlock_irqrestore(&hwsim_virtio_lock, flags);
|
||||
|
||||
schedule_work(&hwsim_virtio_rx);
|
||||
return 0;
|
||||
|
||||
out_remove:
|
||||
remove_vqs(vdev);
|
||||
return err;
|
||||
}
|
||||
|
||||
static void hwsim_virtio_remove(struct virtio_device *vdev)
|
||||
{
|
||||
hwsim_virtio_enabled = false;
|
||||
|
||||
cancel_work_sync(&hwsim_virtio_rx);
|
||||
|
||||
remove_vqs(vdev);
|
||||
}
|
||||
|
||||
/* MAC80211_HWSIM virtio device id table */
|
||||
static const struct virtio_device_id id_table[] = {
|
||||
{ VIRTIO_ID_MAC80211_HWSIM, VIRTIO_DEV_ANY_ID },
|
||||
{ 0 }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(virtio, id_table);
|
||||
|
||||
static struct virtio_driver virtio_hwsim = {
|
||||
.driver.name = KBUILD_MODNAME,
|
||||
.driver.owner = THIS_MODULE,
|
||||
.id_table = id_table,
|
||||
.probe = hwsim_virtio_probe,
|
||||
.remove = hwsim_virtio_remove,
|
||||
};
|
||||
|
||||
static int hwsim_register_virtio_driver(void)
|
||||
{
|
||||
spin_lock_init(&hwsim_virtio_lock);
|
||||
|
||||
return register_virtio_driver(&virtio_hwsim);
|
||||
}
|
||||
|
||||
static void hwsim_unregister_virtio_driver(void)
|
||||
{
|
||||
unregister_virtio_driver(&virtio_hwsim);
|
||||
}
|
||||
#else
|
||||
static inline int hwsim_register_virtio_driver(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void hwsim_unregister_virtio_driver(void)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
static int __init init_mac80211_hwsim(void)
|
||||
{
|
||||
int i, err;
|
||||
|
|
@ -3933,10 +4217,14 @@ static int __init init_mac80211_hwsim(void)
|
|||
if (err)
|
||||
goto out_unregister_driver;
|
||||
|
||||
err = hwsim_register_virtio_driver();
|
||||
if (err)
|
||||
goto out_exit_netlink;
|
||||
|
||||
hwsim_class = class_create(THIS_MODULE, "mac80211_hwsim");
|
||||
if (IS_ERR(hwsim_class)) {
|
||||
err = PTR_ERR(hwsim_class);
|
||||
goto out_exit_netlink;
|
||||
goto out_exit_virtio;
|
||||
}
|
||||
|
||||
for (i = 0; i < radios; i++) {
|
||||
|
|
@ -4048,6 +4336,8 @@ out_free_mon:
|
|||
free_netdev(hwsim_mon);
|
||||
out_free_radios:
|
||||
mac80211_hwsim_free();
|
||||
out_exit_virtio:
|
||||
hwsim_unregister_virtio_driver();
|
||||
out_exit_netlink:
|
||||
hwsim_exit_netlink();
|
||||
out_unregister_driver:
|
||||
|
|
@ -4064,6 +4354,7 @@ static void __exit exit_mac80211_hwsim(void)
|
|||
{
|
||||
pr_debug("mac80211_hwsim: unregister radios\n");
|
||||
|
||||
hwsim_unregister_virtio_driver();
|
||||
hwsim_exit_netlink();
|
||||
|
||||
mac80211_hwsim_free();
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
* mac80211_hwsim - software simulator of 802.11 radio(s) for mac80211
|
||||
* Copyright (c) 2008, Jouni Malinen <j@w1.fi>
|
||||
* Copyright (c) 2011, Javier Lopez <jlopex@gmail.com>
|
||||
* Copyright (C) 2020 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef __MAC80211_HWSIM_H
|
||||
|
|
@ -245,4 +246,24 @@ struct hwsim_tx_rate_flag {
|
|||
s8 idx;
|
||||
u16 flags;
|
||||
} __packed;
|
||||
|
||||
/**
|
||||
* DOC: Frame transmission support over virtio
|
||||
*
|
||||
* Frame transmission is also supported over virtio to allow communication
|
||||
* with external entities.
|
||||
*/
|
||||
|
||||
/**
|
||||
* enum hwsim_vqs - queues for virtio frame transmission
|
||||
*
|
||||
* @HWSIM_VQ_TX: send frames to external entity
|
||||
* @HWSIM_VQ_RX: receive frames and transmission info reports
|
||||
* @HWSIM_NUM_VQS: enum limit
|
||||
*/
|
||||
enum {
|
||||
HWSIM_VQ_TX,
|
||||
HWSIM_VQ_RX,
|
||||
HWSIM_NUM_VQS,
|
||||
};
|
||||
#endif /* __MAC80211_HWSIM_H */
|
||||
|
|
|
|||
|
|
@ -46,5 +46,6 @@
|
|||
#define VIRTIO_ID_IOMMU 23 /* virtio IOMMU */
|
||||
#define VIRTIO_ID_FS 26 /* virtio filesystem */
|
||||
#define VIRTIO_ID_PMEM 27 /* virtio pmem */
|
||||
#define VIRTIO_ID_MAC80211_HWSIM 29 /* virtio mac80211-hwsim */
|
||||
|
||||
#endif /* _LINUX_VIRTIO_IDS_H */
|
||||
|
|
|
|||
Loading…
Reference in a new issue